![926144fdc0e0ecf195a6a7f4eff82140.png](https://img-blog.csdnimg.cn/img_convert/926144fdc0e0ecf195a6a7f4eff82140.png)
很多人经常用ES6,但对ES6没有一个整体全面的了解。这篇文章适合新手学习,更适合老手复习巩固,让我们一起学起来把…
目录:
一. 块级作用域、块级变量let、块级常量const
二. 箭头函数
三. 参数处理(默认参数/...)
四. 模板字面量(模板字符串)
五. 对象的扩展
六. 解构赋值
七. 模块(import/export)
八. 类(class/extends)
九. Promise
十. End 感谢阅读
一. 块级作用域、变量let、常量const
- 由一对 { } 界定的语句叫做块语句,这在其他编程语言中叫做复合语句。
块:由{}包括住
if(){}:是一个块
for(){}:是一个块
一个函数:函数作用域
<script>标签:全局作用域
2. JS中用var声明的变量是没有块级作用域的,只有函数作用域和全局作用域。
var x = 1;
{
var x = 2;
}
console.log(x);
//会输出2,因为块中的var语句与块前面的var语句作用域相同
//这代码证明了var没有块作用域
3. 相比之下,使用 let 和 const 声明的变量是有块级作用域的。
let x = 1;
{
let x = 2;
}
console.log(x);
// 输出 1,x被限制在块级作用域中
// 这里将let换成const结果也一样
4. 经典的例子(背住):
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {console.log(i);};
}
a[0](); // 10
a[1](); // 10
a[6](); // 10
/********************/
var a = [];
for (let i = 0; i < 10;