所以我前几天正在玩,只是为了确切了解JavaScript中的大规模分配是如何工作的.
首先我在控制台中尝试了这个例子:
a = b = {};
a.foo = 'bar';
console.log(b.foo);
Run Code Online (Sandbox Code Playgroud)
结果是"警报"显示在警报中.这是公平的,a并且b实际上只是同一对象的别名.然后我想,我怎么能让这个例子更简单.
a = b = 'foo';
a = 'bar';
console.log(b);
Run Code Online (Sandbox Code Playgroud)
这几乎是一回事,不是吗?那么这一次,它foo不会bar像我期望的那样返回第一个例子的行为.
为什么会这样?
注意:使用以下代码可以更简化此示例:
a = {};
b = a;
a.foo = 'bar';
console.log(b.foo);
a = 'foo';
b = a;
a = 'bar';
console.log(b);Run Code Online (Sandbox Code Playgroud)
(我怀疑JavaScript将字符串和整数等原语与哈希处理不同.哈希返回指针,而"核心"原语返回自己的副本)
这在php中有效:
$x=$y='value';
Run Code Online (Sandbox Code Playgroud)
这将在esscence中将$ x和$ y设置为'value'.
这在javascript中有效吗?
var x=y='value';
Run Code Online (Sandbox Code Playgroud)
我已经在chrome控制台中对它进行了测试,它按预期工作,但只是想在开始使用之前仔细检查.
如何简化一组变量?
var q1 = 0;
var q2 = 0;
var q3 = 0;
var q4 = 0;
var q5 = 0;
var q6 = 0;
var q7 = 0;
var q8 = 0;
var q9 = 0;
var q10 = 0;
var counter = 0;
Run Code Online (Sandbox Code Playgroud)
或者像这样?
var q1 = 0, q2 = 0, q3 = 0, q4 = 0, q5 = 0, q6 = 0, q7 = 0, q8 = 0, q9 = 0, q10 = 0, counter = 0; …Run Code Online (Sandbox Code Playgroud)