爲什麼x = x || 4
甚至x=(x||5)
生成ReferenceError: x is not defined
錯誤,但var x=x || 4
按預期工作?「x = x || 4」生成`ReferenceError:x未定義'錯誤
回答
您正在嘗試使用之前未聲明的變量。這會導致參考錯誤。
這麼多錯誤的單詞。
[退出] @grc說得對。
x = x || 4
表示在變量x中分配x或4。 如果x爲空4分配給變量x
。
可能是你沒有聲明x
變量。這就是爲什麼你得到x is not defined
如果你試圖在它下面的工作:
var x;
x=x||4;
alert(x);
這也將工作:
x=x||4;
var x;
alert(x);
什麼是錯誤的答案??? –
這是因爲變量聲明首先處理(提升)。該MDN page on var
解釋說得好:
Because variable declarations (and declarations in general) are processed before any code is executed, declaring a variable anywhere in the code is equivalent to declaring it at the top. This also means that a variable can appear to be used before it's declared. This behaviour is called "hoisting", as it appears that the variable declaration is moved to the top of the function or global code.
所以下面也將工作:
x = x || 4;
var x;
- 1. 錯誤:「X」未定義
- 2. 錯誤:狀態[x]未定義
- 3. Javascript/AJAX ReferenceError:x未定義
- 4. capybara jscript xpath錯誤「未知錯誤:$ x未定義」
- 5. Uncaught ReferenceError:RichFaces未定義Richfaces 3.x到4.x
- 6. 從3.x遷移後未定義Express.js 4.x會話
- 7. 爲什麼X = X不會引發即使未定義X錯誤
- 8. 未捕獲的ReferenceError:X未定義
- 9. 未捕獲的ReferenceError:X是未定義
- 10. x-debug導致錯誤'未定義屬性'錯誤
- 11. Cocos2d-x,Xcode4在NSObjCRuntime.h中生成錯誤
- 12. Loadbox生成未定義的錯誤?
- 13. Dojo生成錯誤 - ReferenceError:dojo未定義
- 14. 未捕獲的ReferenceError:X未定義 - JS解析限制?
- 15. 從#定義SQR(X)(X * X)
- 16. 生成表3 x 4與數組php
- 17. x未定義,setTimeout問題
- 18. 名稱'X'表未定義
- 19. TypeError:this._grid [x]未定義
- 20. 自定義錯誤頁在PlayFramework2.4.x
- 21. 淘汰賽「沒有定義X」錯誤
- 22. 如果(x)的...給出了參考錯誤:X沒有定義
- 23. extern class:從gcc 3.x移植到4.x時未定義的引用
- 24. 錯誤建築OpenCV的2.4.x的「未定義參考av_opt_set @ LIBAVUTIL_51」
- 25. cocos2d-x EditBox的簡單示例,錯誤未定義的參考
- 26. 未捕獲的語法錯誤:X是沒有定義
- 27. CBLAS mac OS X架構x86_64錯誤的未定義符號
- 28. MSBUILD:科爾多瓦 - 生成錯誤:類型錯誤:未定義
- 29. 運行EF 4.x DbContext Fluent生成器時出錯
- 30. ANOVA錯誤水平(X)[X]
'X = x'是賦值操作,而不是比較 – hindmost