【发布时间】:2011-10-07 01:46:49
【问题描述】:
我有以下成语:
if(typeof prop != 'null') {
}
我的印象是,如果prop为null,!=操作符会将空对象转换为字符串'null'进行比较?
在上述情况下,当 prop 为 null 时,表达式被评估为 true。为什么这个成语适用于未定义? undefined 不是一个对象吗?就像 null 是一个对象一样?
【问题讨论】:
-
您是在比较字符串“null”,而不是
null对象,所以(null != 'null')是true。 -
@Cory Larson - 当然,我认为它可能更像
if("1" == 1) // true -
数字和空字符串比其他任何东西都更容易获得这种行为。您应该研究 JavaScript 中的“真”和“假”比较。
标签: javascript comparison operators