是的,它在我的 Firebug 控制台中有效。为什么像这样的东西不会出现语法错误?
[] = 5; [] = doThis(); [] = (function() {})();
只是好奇为什么允许这样做。
最佳答案
看起来 FF 中的 Javascript 允许使用匹配赋值,因此您可以一次设置多个变量:
[x,y] = [5,6]; // sets x to 5 and y to 6
“显然”,一些 JS 实现非常宽容,会默默地忽略任何额外的值,所以这样做也是一样的:
[x,y] = [5,6,7];
这不会分配任何东西:
[] = [5,6,7];
最重要的是,看起来 FF 甚至愿意处理根本不匹配数组的情况:
[x] = 5; // makes x undefined
因此,如果您使用 [] = whatever
,则“没有任何内容会被分配未定义的值”,因此归结为仅评估 RHS。
(免责声明:这只是通过在 FF 中运行东西来猜测含义...)
关于Javascript:[] = 5,没有语法错误?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3191338/