尝试在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