Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数的性质没有适当增加?_Javascript_Post Increment - Fatal编程技术网

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

我正在练习各种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

对函数的第一次调用不应该返回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。啊,我明白了。一个职位之外的一个职位。