作者:lily--妹妹 | 来源:互联网 | 2022-12-01 11:10
我正在纠正一些基本的Javascript分配,并且学生在构造函数中难以理解这个特定的行:
this.c = (255, 255, 255);
我想向他们(以及我自己)解释为什么这个陈述或任何类似的陈述将评估给出的最后一个"论证".
console.log( ("foo", 42, {}, NaN) ) --> NaN
console.log( ("foo", 42, {}) ) --> Object
console.log( ("foo", 42) ) --> Number
console.log( ("foo") ) --> String
console.log( () ) --> SyntaxError // no longer the same thing
在它们的赋值的情况下,它们使用该属性作为RGB值,但仅坚持单色,因此它们的代码仍然按预期运行.我想知道那个语句被称为什么(如果它有一个名字?)以及JS规范中发生的事情,它表现得如此.
提前致谢.
1> T.J. Crowder..:
这是逗号运算符.它是一个不寻常的运算符:它计算其左侧操作数,抛出该值,计算其右侧操作数,并将结果用作结果值.您有时会看到它在评估第一个操作数时会产生副作用:
const a = (console.log("foo"), 42);
console.log(a);