2017-02-13 32 views
-2

考慮下面的代碼:的javascript:運營商之間的回報值差 - 和 - =

var x = 0; 

function decrement(num) { 
    return num--; 
} 

var y = decrement(x); 
console.log(y); // 0 

對戰如下:

var x = 0; 

function decrement(num) { 
    return num -= 1; // this is the only difference between the functions 
} 

var y = decrement(x); 
console.log(y); // 0 

爲什麼從功能y--回報0不同時y -= 1回報-1

+1

我很好奇,爲什麼你也沒有運行' - y';但你可能會在這個問題中找到答案:http://stackoverflow.com/questions/9549780/what-does-this-symbol-mean-in-javascript –

+0

@DavidThomas謝謝。沒有意識到你不能在SO上輕鬆搜索單個字符。會解釋爲什麼我一開始就找不到這個問題的答案。 – dtburgess

+2

而不是使用Stackoverflow作爲參考,嘗試使用實際參考作爲參考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators – Jan

回答

1

UPDATE:這是一個重複的問題,回答了在這裏:What does this symbol mean in JavaScript?

我不能在SO找到這個問題的答案,並設法回答我的問題,同時研究並撰寫的問題。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Decrement_(--)

的代碼的例子是使用後綴遞增運算符。後綴運算符將首先返回當前值,然後對其進行增加。

var x = 1; 
x++; // returns 1, x === 2  

這與前綴遞增運算符相反,後者會首先遞增該值,然後返回遞增值。

var y = 1; 
--y // returns 0, y === 0 

關於+=-=賦值運算符:這些運營商也增加了值,然後返回增加後的值。

+0

退房(http:///stackoverflow.com/questions/3469885/somevariable-vs-somevariable-in-javascript) – rasmeister

0

記住前綴和後綴。當我做return num--時,我僅返回num的值,在我返回值後出現解析。

總之,運營商的優先