Q
檢查對象存在
0
A
回答
2
程序員應該知道變量是否存在。
它用於將不同的腳本塊混合在一起,而無需跟蹤腳本的哪個部分首先被加載。幾個腳本在開始時會有相同的代碼,所以它們共享相同的變量。
對於第一個腳本,聲明變量,並且沒有以前的值,因此使用{}
值。
對於使用它的以下腳本,var
將被忽略,因爲該變量已被聲明,並且使用之前設置的變量值。
當然,在幾個地方聲明相同的變量對它有代碼味道。最好你應該跟蹤你在做什麼,以便你只申報一次。
0
這是恢復默認值的快捷方式 - {}在這種情況下。
0
基本上,JavaScript可以寫入多個文件,並且在每個文件中可以定義多個聲明和函數。
即使程序員知道給定的實例是否存在該變量,也無法知道從其他位置調用此代碼時它是否已經存在。
這不應該發生在編寫良好的代碼中(全部來自一個開發人員/房子),但它確實發生在js代碼從多個位置合併的項目中。
這個SO question關於javascript中的變量作用域有一個很好的答案,它應該澄清你的疑惑。
1
翻譯成更清晰的代碼
var a; // The variable declaration gets brought up because of hoisting
更多信息在吊裝here
if(a) {
a = a; // if a is a truthy value then assign it to itself
} else {
a = {}; // if a is a falsy value then set the default to an empty object
}
希望幫助
相關問題
- 1. 檢查DocumentDB對象存在
- 2. JavaScript檢查對象存在
- 3. 檢查對象在DB(Django的)存在
- 4. 檢查數組對象是否存在
- 5. 檢查D-Bus對象是否存在
- 6. 如何檢查對象是否存在?
- 7. Django - 檢查對象是否存在
- 8. 檢查JSON對象是否存在(Postman)
- 9. 檢查FORMDATA對象鍵存在
- 10. AWS SDK檢查對象是否存在
- 11. 檢查JS對象是否存在
- 12. 檢查VBScript中是否存在對象
- 13. 檢查QuerySet中是否存在對象
- 14. 檢查此對象是否存在
- 15. 檢查對象中是否存在值
- 16. Websphere MQ檢查對象是否存在
- 17. 檢查對象是否存在
- 18. SimpleXML的檢查SimpleXML的對象存在
- 19. 如何檢查對象列表中是否存在對象?
- 20. 檢查對象樹中是否存在對象
- 21. 遍歷JSON對象,並檢查是否特定對象存在
- 22. 檢查對象等於存儲在java對象中的數據
- 23. Mongoengine檢查對象是否存在,但沒有獲取對象
- 24. 檢查對象存在拋出對象所需的錯誤
- 25. 檢查JavaScript對象中是否存在子對象
- 26. Java:在寫入對象文件之前檢查對象是否存在對象
- 27. 檢查對象
- 28. 檢查對象
- 29. 檢查閃存對象中的元素
- 30. 檢查對象的內存分配
如果'了'存在,使用現有的'了'對象,而不是創造的新。您不知道包含的腳本是否可能會創建這樣的變量 - 並且您可能會通過覆蓋其他腳本來弄亂其他腳本。 – nhahtdh
它實際上測試'a'是否具有falsy值,但如果'a'未定義,如_not declared_中,它將不起作用,您將不得不使用'typeof a!=='undefined'' – elclanrs
是我知道它,但正如我所說,這是第一個代碼,所以程序員知道a不存在 – user1801625