-
ES6新增块级作用域概念。let和const声明的变量和常量,只在所处的代码块内有效,外部访问打印 x is not defined.
最典型的就是for循环中的变量声明,用var声明的话,i是全局变量,每一次循环i的值都增加,所以在循环内部打印的i就是全局变量i,所以i打印出来的就是最后一次i++完的值。let的块级概念完美的解决了这个问题。 -
ES5 只有两种声明变量的方法:var命令和function命令。ES6 除了添加let和const命令,后面章节还会提到,另外两种声明变量的方法:import命令和class命令。
-
顶层对象属性
-
globalThis
-
数组的解构赋值
-
对象的解构赋值
-
字符串的正则方法 :
字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()。 -
arguments对象不是数组,而是一个类似数组的对象。所以为了使用数组的方法,必须使用Array.prototype.slice.call先将其转为数组。
-
箭头函数有几个使用注意点
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
上面四点中,第一点尤其值得注意。this对象的指向是可变的,但是在箭头函数中,它是固定的。
箭头函数不适用场合:
第一个场合是定义对象的方法,且该方法内部包括this。
第二个场合是需要动态this的时候,也不应使用箭头函数。
-
尾调用----以及尾调用优化
-
es6中规定严格模式下,普通函数中调用this指向undefined
-
数组的扩展
-
扩展运算符 … ,该运算符主要用于函数调用。该运算符将一个数组,变为参数序列。扩展运算符后面还可以放置表达式。如果扩展运算符后面是一个空数组,则不产生任何效果。只有函数调用时,扩展运算符才可以放在圆括号中,否则会报错。
-
扩展运算符替代函数的 apply 方法
-
应用 :
·复制数组 : const a2 = […a1]
·合并数组 :[…arr1,…arr2,…arr3]---->浅拷贝
·与解构赋值结合 : 如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。
·字符串 :扩展运算符还可以将字符串转为真正的数组。凡是涉及到操作四个字节的 Unicode 字符的函数,最好都用扩展运算符改写。
-
-
对es6中export、export default、import的理解
- 其中export和export default最大的区别就是export不限变量数 可以一直写,而export default 只输出一次 而且 export输出的变量想要使用必须使用{ }来盛放,而export default 不需要 只要import任意一个名字来接收对象即可。
- export default可以跟在非匿名函数之前,也可以跟在匿名函数之前,同时也可以是一个对象之前。
- import :
import ‘**
’ from 'vue’直接寻找的是依赖包里的文件
如果import ‘**
’ from ‘./vue’ 表示是同级文件下的js。
。。。未完待续