回答
這行代碼執行以下操作:
IFvariable
沒有被定義(或具有falsey值)THEN 它設置爲一個空對象。
ELSE什麼也不做(從技術上來講,variable
被分配給自己)
換句話說variable
將被轉換成一個空的對象,如果它是下列任何一項:
- 假
- undefined
- null
- 零
- NaN的
- 一個空字符串
爲falsey值規範的定義見toBoolean。
「不要做任何事情」的結果,但內部它是一個指令,將變量分配給自己(可以通過編譯器進行優化,但仍然是一個賦值表達式),因此性能Closure Compiler會將其編譯爲'可變||(變量= {})'。順便說一句,你在你的falsy值列表中缺少'NaN'。 – 2013-04-05 22:00:30
你忘了'NaN'。但是,您應該跳過此列表並引用['toBoolean'](http://www.ecma-international.org/ecma-262/5.1/#sec-9.2)。另見http://www.ecma-international.org/ecma-262/5.1/#sec-11.11 – Zeta 2013-04-05 22:01:03
謝謝你們!編輯。 – jahroy 2013-04-05 22:04:29
如果變量未定義或爲false,則將其初始化爲空對象。
這是測試是否初始化variable
。如果不是,則它將variable
初始化爲空對象。如果它確實存在,它什麼也不做,(技術上自行分配variable
)。
如果變量已存在使用它,否則創建一個空對象
- 1. 什麼是變量?
- 2. 變量++和變量是什麼意思?
- 3. 什麼是javascript的變量「名稱」?
- 4. Javascript變量聲明:什麼是「var myVariable = {}」?
- 5. Javascript:什麼是$ result.rows.item(x)變量類型?
- 6. 爲什麼在JavaScript父變量中取得子變量的值?
- 7. JavaScript變量變量
- 8. 什麼是vim的@@變量?
- 9. 什麼是純變量?
- 10. 什麼是綁定變量?
- 11. 什麼是可變常量?
- 12. 爲什麼變量是NULL?
- 13. 什麼是可選變量?
- 14. 什麼是const變量?
- 15. 什麼是「安全變量」?
- 16. 什麼是新的變量
- 17. 什麼是實例變量?
- 18. 什麼是「自由變量」?
- 19. 爲什麼在我的javascript變量
- 20. 變量變量:什麼時候有用?
- 21. javascript中的變量名稱之後的新變量。爲什麼?
- 22. javascript變量是undefined
- 23. Javascript中的「變量」變量?
- 24. javascript變量爲php變量
- 25. JavaScript變量爲PHP變量
- 26. PHP變量爲Javascript變量
- 27. 爲什麼這個變量是在
- 28. 在TensorFlow中「變量」是什麼意思?
- 29. 什麼是模塊變量與全局變量?
- 30. PHP.ini這是什麼變量,放寬需要$變量?
請參閱http://www.ecma-international.org/ecma-262/5.1/#sec-11.11。 – Zeta 2013-04-05 21:58:38
感謝您包含該鏈接。真的很高興能夠真正閱讀這個句子,這個句子在過去已經讓我失望了:「_ &&或||運算符產生的值不一定是布爾類型,產生的值將總是兩個操作數表達式中的一個的值。「 – jahroy 2013-04-05 22:00:09
如果它位於代碼模塊的頂部,則用於聲明」名稱空間「對象。見上面提到的問題。 – Alnitak 2013-04-05 22:08:39