gpt4 book ai didi

javascript - 为什么用大括号括起来的参数列表返回最后一个参数?

转载 作者:行者123 更新时间:2023-11-30 08:21:22 25 4
gpt4 key购买 nike

我正在纠正一些基本的 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 规范方面发生了什么,让它表现得像这样。

提前致谢。

最佳答案

这是comma operator .这是一个不寻常的运算符:它评估其左侧操作数,丢弃该值,评估其右侧操作数,并将结果用作其结果值。您有时会看到它用于计算第一个操作数有副作用的地方:

const a = (console.log("foo"), 42);
console.log(a);

上面链接的 MDN 页面略微不准确,表明逗号运算符接受两个以上的操作数。它不是,它是一个二元运算符(它接受两个操作数);只是它是从左到右关联的,所以

const a = (1, 2, 3);

相同
const a = ((1, 2), 3);

关于javascript - 为什么用大括号括起来的参数列表返回最后一个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53033611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com