Javascript 函数的性质没有适当增加?
我正在练习各种JavaScript技术,即函数属性。有件事让我有点抓狂Javascript 函数的性质没有适当增加?,javascript,post-increment,Javascript,Post Increment,我正在练习各种JavaScript技术,即函数属性。有件事让我有点抓狂 //property of the q0 function q0.unique = 0; function q0() { return q0.unique++; } console.log(q0()); //returns 0 console.log(q0()); //returns 1 console.log(q0()); //returns 2 console.log(q0()); //returns 3
//property of the q0 function
q0.unique = 0;
function q0() {
return q0.unique++;
}
console.log(q0()); //returns 0
console.log(q0()); //returns 1
console.log(q0()); //returns 2
console.log(q0()); //returns 3
对函数的第一次调用不应该返回1吗?为什么返回0?q0.unique已设置为0?如果您的代码为:
function q0() {
return ++q0.unique;
}
带后缀的
++
返回当前值,然后递增。前缀为++
则相反。如果您的代码是:
function q0() {
return ++q0.unique;
}
带后缀的
++
返回当前值,然后递增。前缀为++
则相反。后缀增量运算符返回增量之前的值
var a = 0;
var b = a++;
// now a==1 and b==0
调用它的最佳方法是将a++
读作给定值,然后递增
如果要在增量后返回值,请使用
return ++q0.unique;
后缀增量运算符返回增量之前的值
var a = 0;
var b = a++;
// now a==1 and b==0
调用它的最佳方法是将a++
读作给定值,然后递增
如果要在增量后返回值,请使用
return ++q0.unique;
您混淆了增量前和增量后。鉴于:
var unique = 0;
var x=unique++
将分配unique
(0
)的当前值,而var x=++unique
将分配增量(1
)后的unique
值。在这两种情况下,unique
的值毕竟是1
你想要的是:
function q0() {
return ++q0.unique;
}
您混淆了增量前和增量后。鉴于:
var unique = 0;
var x=unique++
将分配unique
(0
)的当前值,而var x=++unique
将分配增量(1
)后的unique
值。在这两种情况下,unique
的值毕竟是1
你想要的是:
function q0() {
return ++q0.unique;
}
有两个增量运算符:
var++ // increment the variable ---after--- the operation.
++var // increment the variable ---before-- the operation.
例如:
var x = 0;
alert(x++) // 0
alert(x) // 1
alert(++x) // 2
有两个增量运算符:
var++ // increment the variable ---after--- the operation.
++var // increment the variable ---before-- the operation.
例如:
var x = 0;
alert(x++) // 0
alert(x) // 1
alert(++x) // 2
啊,我明白了。除了一个帖子,还有一个pre。啊,我明白了。一个职位之外的一个职位。