1
爲什麼在使用短路評估定義變量時必須使用var關鍵字?使用短路評估來定義變量
這工作...
var sum=sum||5;
console.log(sum); //shows 5;
這不工作...
sum=sum||5;
console.log(sum); //error sum is not defined;
不應該第二個例子只是使之和=== 5,但在全球範圍內,而不是本地的?
爲什麼在使用短路評估定義變量時必須使用var關鍵字?使用短路評估來定義變量
這工作...
var sum=sum||5;
console.log(sum); //shows 5;
這不工作...
sum=sum||5;
console.log(sum); //error sum is not defined;
不應該第二個例子只是使之和=== 5,但在全球範圍內,而不是本地的?
當你做var sum=sum||5;
什麼內部發生的情況是這樣的:
sum
定義,它的創建,sum
被分配了一個undefined
值sum
被分配sum || 5
的結果,這就像是說undefined || 5
,這是5
當你簡單地做sum = sum||5
上面的第一步和第二步都沒有發生,所以在第三步中,你將的所有與5
的值不存在短路,這就是爲什麼你會得到這個錯誤。
爲了更好地理解,請執行以下操作:打開瀏覽器的控制檯,並簡單地編寫sum
。您將收到錯誤信息,因爲sum
不存在。現在,做sum = ''
。這裏發生的是變量sum
被定義/創建,就好像你已經完成var sum
,它現在存在,並且它被賦值爲''
。
上面,你應該瞭解的本質,是有之間的差異短路與價值的價值undefined
5
和短路的東西,不具有存在的價值5