對於特種部隊人員的好日子,我是新來這個論壇,也是我正在學習如何編碼JavaScript。我的問題是賦值運算符是如何工作的?我知道(例如* =),其Javascript指派運營商
var (nameOfVariable)=(value)
nameOfVariable*=(some value)
是:
nameOfVariable= nameOfVariable * (some value) == value*(some value)
現在,例如:
var value=2;
console.log(value*=2); == 4
所以每N次,我把(價值* = 2) console.log(),它給我(值* 2^n)意思,
var value=2;
console.log(value*=2); == 4 (1st time)
console.log(value*=2); == 8 (2nd time)
console.log(value*=2); == 2 * (2^n) == 16 (nth time)
我嘗試到這個while循環,這是發生了什麼事:
var value=2; | (Console gave me this)
while(value<=10){ | 2
console.log(value); | 4
value*=2; } | 8
console.log(value); | 16
爲什麼是賦值運算符在「while」循環括號內不是唯一的?爲什麼會影響外部變量?這是否意味着每次涉及賦值操作符的變量都在console.log()內寫入n次時,它會在我的情況下返回值2^n(value)?我希望能爲這一點提供啓發,因爲我知道掌握編程意味着要掌握基本知識。
它是循環內部的相同變量(它是**而不是**閉包) –
while循環不是閉包;這是一個構造。這裏沒有專門的範圍 - 適用於函數而不是循環。 – Utkanos
具有諷刺意味的是,如果有真正的關閉,你會看到相同的行爲,因爲變量'value'將變成封閉的 – slebetman