在 JavaScript 的 "use strict";
模式下,是否有其他一种方式可以将一个值初始化到多个变量中?因为这样做:
var x = y = 14;
会导致错误:Uncaught ReferenceError: y is not defined
参考资料:
在 JavaScript 的 "use strict";
模式下,是否有其他一种方式可以将一个值初始化到多个变量中?因为这样做:
var x = y = 14;
会导致错误:Uncaught ReferenceError: y is not defined
参考资料:
在 var x = y = 14;
中有副作用,因此在严格模式下不允许。具体来说,y
将成为全局变量。
当你说
var x = y = 14;
它等同于
var x;
y = 14;
x = y;
其中x
被声明为局部变量,而y
则作为全局变量创建。
有关使用var
声明变量的更多信息,请参见此问题。此外,值得注意的是,ES6引入了关键字let
,它允许块级作用域,与存在于var
的函数级作用域形成对比。
最后,如果您想要给这两个变量赋值,以下任何一种方法都可以:
var x, y;
x = y = 14;
var x = 14,
y = x;
var x = 14,
y = 14;
var x = 14;
var y = 14;
var x = 14;
(因为 y = 14
)会得到 14
的结果。 - Felix Klingvar x; y = 14; x = y;
:D - Niet the Dark Absolvar x = y = 14;
的正确等效形式。 - sfletchevar x, y;
x = y = 14;
x
。 - Bergi