Cha*_*had 5 javascript operators
例如:
var a = 123;
var b = a++;
Run Code Online (Sandbox Code Playgroud)
现在a包含124和b包含123
我知道b正在取a的值然后a正在递增.但是,我不明白为什么会这样.为什么JavaScript的创建者会想要这个的主要原因.除了混淆新手之外,这有什么好处?
这就是为什么它被称为"后递增算子".从本质上讲,一切都是一个产生价值的表达.a + 1是如果您分配这导致价值124的表达b与b = a + 1,b拥有124的值如果不结果分配到任何东西,a + 1仍然会导致价值124,它只会被立即因为你扔掉"不要"把它"抓到"任何地方.
BTW,甚至b = a + 1是返回124的表达式.赋值表达式的结果值是赋值.这就是为什么c = b = a + 1按照你的期望工作的原因.
总之,讲的是一个表达特别的东西++,并--是,除了返回一个值,该++运营商直接修改变量.那么当你这样做时会发生什么b = a++,表达式a++返回值123并递增a.该岗位增量器将首先返回值,然后递增,而预增量器++a 第一增量,则返回值.如果你只是a++自己编写而没有作业,你就不会注意到它的区别.这a++就是通常使用的方式,作为简单的方法a = a + 1.
这是非常标准的.
请注意,您也可以写
b = ++a;
Run Code Online (Sandbox Code Playgroud)
哪个有你可能期望的效果.
重要的是要意识到这里有两件事情:分配和增量以及语言应该定义它们将以何种顺序发生.因为我们两者都有++a,a++所以它们应该有不同的含义.
对于我们这些来自C背景的人来说,这很自然.如果PHP的行为不同,我们可能会想知道为什么PHP选择偏离我们习以为常的方式.
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |