typeof x ==='undefined'有什么作用?

时间:2019-09-13 11:57:55

标签: javascript reactjs

在我们的代码中找到了这一点。之间有什么区别

if (typeof isValid === 'undefined') {

if (isValid === 'undefined') {

为什么有人会使用第一个,我不明白这有什么道理?

2 个答案:

答案 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'