![]() |
1
6
扩展语句
到更详细的JS代码
结果非常有意义,因为它将评估
哪一个是20。请记住,JS从左到右计算表达式,包括复合赋值,即
您也可以这样想:假设从左到右的评估顺序,JS将赋值解析为
而Perl将使用
我看不出支持或反对这两种选择的任何有说服力的论据,所以不同语言的行为不同只是运气不好。 |
![]() |
2
3
在C/C++中,每个变量只能在每一个语句中改变一次(我认为确切的术语是:在两个代码点之间只有一次,但我不确定)。 如果你写
您将更改x的值两次:
尽管您可以编写这个代码,编译器也不会对此抱怨(不确定,您可能希望检查不同的警告级别),但结果是未定义的,并且每个编译器中的结果都可能不同。 |
![]() |
3
1
基本上,x的值在赋值后会减少。这个例子可能会更清楚(在Firebug控制台中运行)
|
![]() |
4
1
在C中,行
是未定义的行为。似乎您的特定编译器将其视为:
然而,ECMAScript规范
做
指定
所以它相当于:
|
![]() |
Yaroslav · 导致错误的后缀和前缀增量 7 年前 |
![]() |
user343037 · 如何接受后缀和中缀符号中的负值? 8 年前 |
![]() |
Ryan Tibbetts · 二进制树后缀计算器 12 年前 |