JavaScript中类Python元组语法的行为解析及相关疑问
JavaScript中的逗号运算符行为解析
你遇到的是JavaScript原生的逗号运算符,和Python元组完全无关。它的核心逻辑是:依次执行逗号分隔的多个表达式,最终返回最后一个表达式的结果。
两种情况的具体分析
带括号的写法:
x = (90, 27);
括号提升了逗号表达式的优先级,JS会先执行括号内的90, 27:先计算90(这个值会被丢弃,逗号运算符只保留最后一个结果),再计算27,整个括号内的表达式返回27,接着把这个结果赋值给x,所以x的值是27,整个语句的返回值也是27。不带括号的写法:
x = 90, 27;
赋值运算符=的优先级比逗号运算符高,JS会先执行x = 90,把90赋值给x;然后执行逗号后面的27,整个语句的返回值是27,但此时x已经被赋值为90,所以后续查看x得到的是90。
相关学习提示
这种行为是逗号运算符的标准特性,你可以查阅JavaScript语言规范里的逗号运算符章节,或者JS基础语法资料中的运算符优先级部分,就能找到详细说明。
内容的提问来源于stack exchange,提问作者FoamyGuy
相关产品推荐
相关产品推荐

