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

标签 javascript

是的,它在我的 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/

相关文章:

javascript - 采用 HTML 形式并将值传递给 node.js 函数中的变量

javascript - 在javascript中将日期和时间转换为iso格式

javascript - Node.js 的 Hello World 示例中的函数参数

javascript - 哪种做法更好 : v-show(true/false) or replaceWith? Vue vs jQuery

javascript - 从 JavaScript 对象中随机选择值

javascript - 减小 Leaflet 多边形的边框宽度

javascript - Parse.com - 无法将特定用户添加到角色

javascript - 如何在 SVG 中沿设定方向移动线条

javascript - Nodejs while 循环未按预期工作 - 变得无限

javascript - d3 hexbin 缩放问题