繁体   English   中英

Javascript:[] = 5,没有语法错误?为什么?

[英]Javascript: [] = 5, No Syntax Error? Why?

是的,它适用于我的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中运行东西来猜测意义......)

我在Chrome中收到了“未捕获的ReferenceError:分配中的左侧无效”。 IE8抛出“错误:无法分配给'[object]'”。 确实,FF确实没有抛出错误。

这很可能只是Firefox JavaScript引擎的失败,并且在任何情况下,似乎都不会影响数组文字[]的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM