在看到阮一峰的ES6教程解构赋值,默认值时,这个地方没太看懂。
原文链接
注意,ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,如果一个数组成员不严格等于undefined,默认值是不会生效的。
function f() { console.log('aaa'); }let [x = f()] = [1];
书上说上面这段代码等价于下面这段
let x; if ([1][0] === undefined) { x = f(); } else { x = [1][0]; }
请问一下这个[1][0]
是哪里来的?不应该是下面这样的吗?
let x;if (1 === undefined) { x = f(); } else { x = 1; }
白衣染霜花
相关分类