下面的代码来自今天ruanyf的微博:
var x = 1;
function foo(x = x) {
console.log(x);
}
foo();
代码在V8引擎下不能正常运行,他认为是个bug。没搞懂这个语法,看起来像是默认值。改造了一下就可以运行了:
var y = 1;
function foo(x = y) {
console.log(x, arguments.length);
}
foo();
y = 2;
foo();
结果很喜人:好像真的是默认值,但是arguments的length是0。这不会给代码带来困扰么?