1、let
- 使用let声明一个变量,但是如果在变量声明之前就输出声明的变量,就会报错(
ReferenceError
),
不过如果使用的是var的话,会输出undefined,这是因为在es6中不存在变量提升。
- 只要let存在的会计作用域,就会存在暂时性死区,就是这个变量绑定了这个区域,这个区域的这个变量不受外部的
的影响,即使外部声明了一个全局的变量。
如果let变量声明之前使用typeof的话,那么就会输出ReferenceError,但是如果之后没有声明的话,就会输出undefined
- let不允许相同作用域内,重复声明同一个变量,所以也不允许在函数内部声明参数,这样也会报错
- 块级作用域作用域是没有返回值的,如果想要得到块级作用域的内部值,可以将块级作用域之前加上do,把它变为do表达式,这样就可以得到整个块级作用域的返回值了
2、const
- 这是声明一个只读的变量,一旦声明之后就不能改变,不然会报错,所以也就意味着,一旦声明就必须立即初始化,不能留到之后再赋值。
- 但是const的作用域与let命令相同,只在声明所在的块级作用域内有效,而且变量也是不提升的,同样存在暂时性死区,只能在声明的位置后面使用,也不可以重复声明
3、变量
- 解构数组:解析赋值允许指定默认值,如果一个值有给他赋值默认值,然后他的数组成员严格等于undefined的时候,就会等于默认值
- 可以使用圆括号的情况只有一种:赋值语句的非模式部分,可以使用圆括号。即需要是赋值语句而不是声明语句
4、字符串的扩展
- 字符的Unicode表示法:这种表示法只限于码点在
\u0000
~\uFFFF
之间的字符,超出这个范围的字符,必须用两个双字节的形式表示,如果超出这个范围的就会显示一个空格 - codePointAt() :字符以UTF-16的格式储存,每个字符固定为
2
个字节,使用for...of
循环,因为它会正确识别32位的UTF-16字符
时间: 2024-08-09 02:03:28