我正在阅读一些代码,并且看到了这样的比较:
a = b = c
看到搜索关于相等或比较的 Javascript 如何产生补救结果,有人愿意解释发生了什么吗?
编辑:这些都是我们在这里讨论的对象或对象属性,应该指定。
双重编辑:这是在 Object.defineProperties() 块内。
我正在阅读一些代码,并且看到了这样的比较:
a = b = c
看到搜索关于相等或比较的 Javascript 如何产生补救结果,有人愿意解释发生了什么吗?
编辑:这些都是我们在这里讨论的对象或对象属性,应该指定。
双重编辑:这是在 Object.defineProperties() 块内。
=是一个运算符。它有两个参数:一个变量引用和一个表达式。它将表达式的值分配给变量,并返回分配的值。
因此,您可以将它们链接起来,这相当于:
a = (b = c)
换句话说,分配b给 的值c,然后将该值分配给a也。
a = b = c只是以下的简写:
b = c;
a = b;
if(a = b)将始终返回true,因为它正在分配,而不是比较。为了比较,该语句应为:if(a == b)。
那不是比较。它是c对b和a变量的赋值。
赋值从右到左工作,所以它是cto bfirst 的赋值。然后将该操作的返回值分配给a。
赋值操作的返回值是被赋值的值,所以a会得到相同的赋值给b.
=运算符从右到左关联并计算分配的值。
所以这:
a = b = c;
意思是*:
b = c;
a = c;
*除非您正在处理属性。
它等同于此;
b = c; a = b;