1?? let 与const 命令
一.块级作用域:注(
var
,即会提升到全局作用域或函数作用域的头部。 注意,上面三条规则只对 ES6 的浏览器实现有效,其他环境的实现不用遵守,还是将块级作用域的函数声明当作let
处理。
)
二.不存在变量提升
三.暂时性死区(如果区块中存在let
和const
命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错)
四.let 不允许同一作用域内,重复声明
const 常量
一.值不能改变,声明变量后须立即初始化。
二.与let 相同,只在声明所在的块及作用域内有效。const
命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。不能重复声明
三.const ,值不能改变,不能指向其他值
四.冻结对象 Object.freeze({});
ES6六种声明变量的方法:var,function,let,const, import,class
顶层对象的属性与全局变量
一.let,const,class 命令声明的全局变量 不属于顶层的属性 let i; window.i //undefined
二.全局环境中,Node模块和ES6模块中,this
返回的是当前模块。
2??变量的解构与赋值
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。
let [a,b,c] = [1,2,3]; let {bar,foo} = {foo:"aaa",bar:"bbb"};let{foo:bar} = {bar:"bbb"};
3??字符串的操作
一.字符的Unicode表示法
二 .codePointAt();方法会正确返回32位的UTF-16字符的码点
三.字符串遍历:优点是可以识别大于0xFFFF
的码点,传统的for
循环无法识别这样的码点。
for (let codePoint of ‘foo‘) {
console.log(codePoint)
}
// f,o,o
四.ar();该方法不能识别码点大于0xFFFF
的字符。
五.用来确定一个字符串是否包含在另一个字符串中。ES6又提供了三种新方法。
原文:http://www.cnblogs.com/songtianen/p/6412190.html