我想了解一些JavaScript代码,但不明白是什么导致了这种行为。圆括号中的Javascript字符串
我的代码很简单:
test ="s" + ("locomotion","maintenance","ave");
alert(test);
当我执行上面的代码,返回的字符串是“拯救”的警告框。上述代码的意义是什么?为什么加入字符串的最后一个字符串是“s”?
这是什么叫,以及如何java脚本选择“大道”加入“S”?
谢谢。
我想了解一些JavaScript代码,但不明白是什么导致了这种行为。圆括号中的Javascript字符串
我的代码很简单:
test ="s" + ("locomotion","maintenance","ave");
alert(test);
当我执行上面的代码,返回的字符串是“拯救”的警告框。上述代码的意义是什么?为什么加入字符串的最后一个字符串是“s”?
这是什么叫,以及如何java脚本选择“大道”加入“S”?
谢谢。
的MDN说:
“(从左至右)和返回最后一个操作数的价值逗号运算符的每个操作数的。”
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator
在你的情况下,最后的操作数是 “AVE”
您的代码按预期工作。在警报中,您获得save
,这是因为您使用+
运算符加入s
和ave
。
在你expresion ("locomotion","maintenance","ave")
,ave
选择,所以你要执行的操作test = "s" + "ave"
,让你警觉得到save
这里是如何test
计算:
"s" concatenated with ("locomotion", "maintenance", "ave");
"locomotion", "maintenance" is evaluated to "maintenance"
"maintenance", "ave" is evaluated to "ave"
("ave") is evaluated to "ave"
"s" + "ave" is evaluated to "save"
它发生因为,
is an operator那两个参数。它评估两个操作数并返回第二个值。
逗号运算符评估它的两个操作数(从左到右)并返回第二个操作数的值。
它只是一个逗号运算符,根据您的问题返回最后一个字符串的值。请参阅Andreas提到的这个文档。
什么是你真正想干什么?这不是如何在JS中加入字符串,括号只是表示要评估的表达式。 – skyline3000
我在其中一个示例中找到了此代码。当我尝试使用警报测试时,它将在警告框中返回“保存”。所以我想了解它如何使用s + ave返回字符串“save”。为什么不是第一个或第二个字符串与“s”? – ahelpyguy