在es6中,下面程序运行结果输出,选项结果正确的是:
1 for(let i = 0;i < 12; i++){} console.log(i);
2 const a = 12; a = 13;console.log(a);
3 const g = {b:3};console.log(g.b);g.b = 12;console.log(g.b);
4 let[head,...tail] = [1,2,3,4]; console.log(tail);
A.11,13,3,12,[3,4]
B.i not defined ,TypeError,TypeErrpr,4
C.11,12,3,3,4
D.i not defined,TypeError,3,12,[2,3,4]
分析:1、let 与var不同,存在块级作用域,在for循环中声明,循环之外销毁 所以 i not defined
2、const 声明一个常量无法更改,所以TypeError
3、const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变,也就是只要指向这个函数,更改函数内部的属性值是可以的。
4、数组解构赋值,模式匹配,具体可参考http://es6.ruanyifeng.com/#docs/destructuring