嘗試在strict
模式下運行Javascript以避免大部分問題。
的NaN,空,假, 「」,null,未定義,0等等,他們被視爲falsy值(記住falsy
!== false
)在JavaScript中,無論您使用的是strict
模式與否。
// 'use strict';
console.log(!NaN); // true
console.log(!null); // true
console.log(!false); // true
console.log(!""); // true
console.log(!null); // true
console.log(!undefined); // true
console.log(!0); // true
它在Python中也是如此,除了NaN。例如,混淆 的
print(not False) # True
print(not None) # True
print(not float("NaN")) # False
print(not "") # True
print(not 0) # True
源當我們使用多種語言有時也可以是混亂的來源。
例如,
在Python 'cat' in ['fat', 'cat', 'rat', 'hat']
返回true。
使用Javascript 'cat' in ['fat', 'cat', 'rat', 'hat']
(完全相同的一段代碼)無論您是否使用strict
模式都會返回false。
在Python中print(not [])
返回True。
在Javascript中console.log(![]);
返回false。
這就是我總是喜歡使用調試器,REPL等的原因之一,無論代碼是多麼簡單。
@pvg似乎不是重複的。 NaN與此處沒有任何比較。 –
@pvg我在發佈之前做過搜索,沒有看到我提出的具體問題的答案。 – newswim
@MartinSmith你是對的,我誤解了問題,刪除了國旗。這個問題要簡單得多,但難以在相關答案的海洋中找到答案。 – pvg