2
A
回答
4
可以說varName
是未定義的。你的代碼行會經過以下步驟(每個新行是下一步):
typeof(varName) === 'undefined' == 0
typeof(undefined) === 'undefined' == 0
'undefined' === 'undefined' == 0
true == 0
false
現在讓我們說varName
被定義爲等於5
:
typeof(varName) === 'undefined' == 0
typeof(5) === 'undefined' == 0
'number' === 'undefined' == 0
false == 0
true
這是錯誤代碼。你可以用typeof(varName) !== 'undefined'
+0
感謝您解釋 –
0
typeof(varName) === 'undefined' == 0
得到相同的結果上述表達式也可以寫爲
!(typeof(varName) === 'undefined')
而不是使用不運營商(!
)他們使用== 0
的。但是如果你做===0
,它將不起作用,因爲它也會檢查數據類型,並且總是返回false
。
例如:
true == 0 => false
false == 0 => true
但是如果你使用===
true === 0 => false
false === 0 => false
注:typeof(varName) === 'undefined' == 0
是做一個壞方式。
使用非運營商:
!(typeof(varName) === 'undefined')
相關問題
- 1. mysql計數比較聲明
- 2. 幫助比較聲明
- 3. 加入聲明和比較
- 4. MY SQL比較語句!不起作用的比較聲明
- 5. JMeter BSF聲明 - 比較日期變量
- 6. Ruby中的NoMethodError與比較聲明
- 7. IIf聲明比較計算值
- 8. 如果聲明:比較多個整數
- 9. 如果聲明 - 比較datareader的值datetime
- 10. 如果聲明比較字符串
- 11. C++地圖比較聲明如下
- 12. 比聲明
- 13. 比較php回聲結果在javascript
- 14. JavaScript聲明
- 15. 比較用JavaScript
- 16. 比較在JavaScript
- 17. 比較在JavaScript
- 18. 比較在JavaScript
- 19. 比較用JavaScript
- 20. 比較兩個聲波
- 21. PHP回聲效率比較
- 22. 比較影像和聲音
- 23. 比較android上的哨聲
- 24. 比較聲音在App
- 25. 比較哪裏聲明ORMLite中的2個字段
- 26. 查詢字符串的聲明如果比較
- 27. 錯誤:聲明與'函數名'無法比較
- 28. 在iif聲明中將「Like」與比較器混合?
- 29. 使用比較空白的變量,如果聲明
- 30. 腳本中的CASE聲明不分段行進行比較
來自哪裏的代碼?因爲它很糟糕。我可能會期望從縮小到像這樣的東西,但它絕對不會被縮小。 – vlaz
看到這個:http://www.w3schools.com/js/js_comparisons.asp – Sparrow
Erm,無論如何'類型varName ===「undefined」(括號是多餘的和不需要的)將檢查'varName'是否是'undefined'。然後_that_的結果被鬆散地檢查爲零,這與檢查它是否爲'false'相同。 – vlaz