在我们的代码中找到了这一点。之间有什么区别
if (typeof isValid === 'undefined') {
和
if (isValid === 'undefined') {
为什么有人会使用第一个,我不明白这有什么道理?
答案 0 :(得分:3)
此:
if (typeof isValid === 'undefined') {
检查isValid
的类型是否为"undefined"
。可能是"undefined"
,因为A)isValid
是一个变量,其中包含值undefined
,或者B)这是一个未声明的标识符。
此:
if (isValid === 'undefined') {
检查变量isValid
是否包含字符串"undefined"
。该变量必须存在(例如,被声明),否则将抛出ReferenceError
。
在作者不确定已声明变量isValid
的情况下,或者因为他们担心undefined
可能已在发生代码的范围中重新定义的情况下,您会看到第一种情况,或者因为很早以前,他们担心一个域中的undefined
(松散地:window / tab)和另一个域中的undefined
领域不会彼此===
。 (如果这是真的,那已经有十年了。)
答案 1 :(得分:-2)
if (typeof isValid === 'undefined') {
表示您要检查变量是否具有任何值,而if (isValid === 'undefined') {
意味着要检查变量是否具有字符串值'undefined'