引用的Javascript顺序
Javascript order of referencing
以下语句的运行顺序是什么?运行时是否从右向左执行它?
length = i = test = output = null;
是的,因为赋值表达式本身不是左手边的表达式,所以嵌套是
(length = (i = (test = (output = null))));
它是从外向内执行的,从左到右求解引用(首先获取length
变量,然后评估右侧,即获取i
变量并评估…)。这意味着output
是被分配的第一个变量,然后是test
,然后是i
,最后是length
:如果你愿意,"从右到左"。由于赋值运算符总是产生其右操作数,因此所有操作数都将被分配相同的(最里面、最右边)值:null
。
运行时是否从右向左执行它?
是的。
foo = {
set a() {
console.log('a');
},
set b() {
console.log('b');
},
set c() {
console.log('c');
},
set d() {
console.log('d');
}
};
foo.a = foo.b = foo.c = foo.d = 'bar';
生产:
d
c
b
a
在控制台中。此顺序是必要的,因为每次分配都依赖于上一次分配的返回值:
foo.a = foo.b = foo.c = foo.d = 'bar';
相当于:
foo.a = (foo.b = (foo.c = (foo.d = 'bar')));
但是并不等同于:
foo.d = 'bar';
foo.c = foo.d;
foo.b = foo.c;
foo.a = foo.b;
a = b
的返回值为b
。如果您选择实现访问器和赋值器,请记住这一点尤为重要。
这意味着我前面的例子相当于:
foo.d = 'bar';
foo.c = 'bar';
foo.b = 'bar';
foo.a = 'bar';
是的,它从右到左执行。所有内容的值现在都为空。
单行分配等效于此
output = null;
test = output;
i = test;
length = i;
相关文章:
- Javascript-根据赋值顺序,按键合并对象数组
- 在Javascript中列出顺序子集元素
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 从数组中删除重复条目,并在javascript中按顺序排列
- javascript函数和代码隐藏函数的执行顺序
- 如何在 JavaScript 中以递增顺序在对象中添加属性
- Javascript按数字顺序排序()数组
- Javascript从数组中随机选择并按字母顺序排列
- 使用JavaScript按行顺序构建HTML表
- 如何使用JavaScript控制数据库查询的响应顺序
- javascript中无法正常工作的事件顺序
- 确保执行顺序:javascript
- 复选框顺序 Javascript
- 正则表达式,任何术语可选且顺序(javascript 或 java)
- Crm 字段控制顺序 Javascript
- 顺序 JavaScript 执行
- 顺序Javascript加载程序不尊重顺序
- 更正加载顺序javascript文件
- 优先顺序Javascript/PHP/Jquery Json-从用户那里获取浏览器res
- 向上/向下移动并更改顺序javascript