Web*_*ner 109 javascript operators
在javascript中我见过i++在许多情况下使用过,我知道它在前面的值中添加了一个:
for (var i=1; i<=10; i++) {
console.log(i);
}Run Code Online (Sandbox Code Playgroud)
但是当我这样做时会发生什么:
++i;
Run Code Online (Sandbox Code Playgroud)
使用--运算符是否有任何不同(当然除了加法而不是加法)?
Guf*_*ffa 183
i++和之间的差异++i是表达式的值.
该值i++是i增量之前的值.值++i是i增量后的值.
例:
var i = 42;
alert(i++); // shows 42
alert(i); // shows 43
i = 42;
alert(++i); // shows 43
alert(i); // shows 43
Run Code Online (Sandbox Code Playgroud)
在i--与--i运营商的工作方式相同.
Del*_*ani 51
++variable 递增变量,返回新值.
variable++ 递增变量,但返回旧值.
--variable 递减变量,返回新值.
variable-- 递减变量,但返回旧值.
例如:
a = 5;
b = 5;
c = ++a;
d = b++;
Run Code Online (Sandbox Code Playgroud)
a是6,b是6,c是6,d是5.
如果您没有使用结果,前缀运算符对后缀运算符的作用相同.
我认为为了完整性,我会在OP的第一个问题中添加一个特定答案:
您的一个示例显示了i循环中使用的i ++/++:
for (i=1; i<=10; i++) {
alert(i);
}
Run Code Online (Sandbox Code Playgroud)
无论您使用哪种警报,您的警报都会得到1-10.例:
console.log("i++");
for (i=1; i<=10; i++) {
console.log(i);
}
console.log("++i");
for (i=1; i<=10; ++i) {
console.log(i);
}
Run Code Online (Sandbox Code Playgroud)
将它们粘贴到控制台窗口中,您可以看到它们都具有相同的输出.
它确定增量是在使用变量值之前还是之后发生的.
var j = 2;
console.log(j++); // 2
console.log(j); // 3
var k = 2;
console.log(++k); // 3
console.log(k); // 3
Run Code Online (Sandbox Code Playgroud)
一个情况下,所有这些问题的答案不能不提是发生了什么的时候i++,并++i与其他数字的操作使用.虽然当表达式本身时,整个" i++之前,++i之后 "的概念很容易理解,但当你开始组合语句时,它会变得更加混乱.参见下面的实施例C和D.
// Example A
var i = 42;
var a = i++; // equivalent to `var a = i; i = i+1;`
console.log(a); // 42
console.log(i); // 43
// Example B
var i = 42;
var b = ++i; // equivalent to `i = i+1; var b = i;`
console.log(b); // 43
console.log(i); // 43
// Example C
var i = 42;
var c = i++ * 2; // equivalent to `var c = i*2; i = i+1;`
console.log(c); // 84
console.log(i); // 43
// Example D
var i = 42;
var d = ++i * 2; // equivalent to `i = i+1; var d = i*2;`
console.log(d); // 86
console.log(i); // 43
Run Code Online (Sandbox Code Playgroud)
请注意,在示例C中,i++直到乘法和赋值后才对其求值c.这反驳了" i++应该首先按操作顺序进行评估"的误解.换句话说,语句i++ * 2实际上是i * 2 在它递增之前计算的i.
var i = 0;
console.log(i++); // 0
console.log(++i); // 2
Run Code Online (Sandbox Code Playgroud)
++variable: 使用变量前增加变量
variable++: 使用变量后增加变量
我认为包含一个带有片段的答案以确认它们在for循环中的行为会很有用。
只是为了在您的浏览器中验证在for 循环声明中使用 a++i和 a时确实没有区别i++。
并在我们进行时投掷--i对抗i--。
console.log("-- with looping --");
console.log("using ++i in a for loop");
for (var i=1; i<=3; ++i) {
console.log(i);
}
console.log("using i++ in a for loop");
for (var i=1; i<=3; i++) {
console.log(i);
}
console.log("using --i in a for loop");
for (var i=3; i>=1; --i) {
console.log(i);
}
console.log("using i-- in a for loop");
for (var i=3; i>=1; i--) {
console.log(i);
}
console.log("-- without looping --");
var i = 1;
console.log("i: "+ i);
console.log("i++: "+ i++);
console.log("i: "+ i);
console.log("++i: "+ ++i);
console.log("i: "+ i);
console.log("--i: "+ --i);
console.log("i: "+ i);
console.log("i--: "+ i--);
console.log("i: "+ i);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78544 次 |
| 最近记录: |