在 es6 中,下面程序运行结果输出,选项结果正确的是
for(let i=0;i<12;i++){} console.log(i); const a = 12;a=13; console.log(a); const g = {b:3}; console.log(g.b); g.b=12;console.log(g.b); let [head,...tail] = [1,2,3,4]; conole.log(tail);
for(let i=0;i<12;i++){} console.log(i); const a = 12;a=13; console.log(a); const g = {b:3}; console.log(g.b); g.b=12;console.log(g.b); let [head,...tail] = [1,2,3,4]; conole.log(tail);
11,13,3,12,[3,4]
i not defined ,TypeError,TypeErrpr,4
11,12,3,3,4
i not defined,TypeError,3,12,[2,3,4]
const a={x:1};
console.log(a.x);
a.x=5;
console.log(a);//Object {x: 5}
const声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。例如,在引用内容是对象的情况下,这意味着可以改变对象的内容(例如,其参数)。
let [a,b,c,d] = [1,2,3,4] // a ==> 1 // b ==> 2 // c ==> 3 // d ==> 4 let [..arr] = [1,2,3] // arr ==> [1,2,3]
const a={x:1}; console.log(a.x); a.x=5; console.log(a);//Object {x: 5}
1、数组的解构赋值
基本用法
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。
以前,为变量赋值,只能直接指定值。
var a = 1; var b = 2; var c = 3;ES6允许写成下面这样。
var [a, b, c] = [1, 2, 3];
let [foo, [[bar], baz]] = [1, [[2], 3]]; foo // 1 bar // 2 baz // 3let [x, , y] = [1, 2, 3]; x // 1 y // 3let [x, y, ...z] = ['a']; x // "a" y // undefined z // []let [head, ...tail] = [1, 2, 3, 4]; head // 1 tail // [2, 3, 4]
let [ , , third] = ["foo", "bar", "baz"]; third // "baz"
上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。
本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。下面是一些使用嵌套数组进行解构的例子。