Javascript 为什么类型是运算符而不是属性?
我正在学习Javascript,我遇到了一些感觉“古怪”的东西 为什么属性的类型不像Javascript 为什么类型是运算符而不是属性?,javascript,typeof,Javascript,Typeof,我正在学习Javascript,我遇到了一些感觉“古怪”的东西 为什么属性的类型不像.length或.name?它似乎应该属于这一类。相反,它被认为是一个类似等号的运算符 可能有一个明显的解释,或者我不理解某些东西(很容易理解)。如果它是一个属性,那么您将无法测试某些东西是否是未定义的,因为未定义的值不能有属性 更糟糕的是,如果一个变量未声明,那么尝试测试该变量上的属性将抛出引用错误。因为typeof在JavaScript中是通用的(也就是说,您可以对任何变量使用它),所以它可以作为对象上的属性
.length
或.name
?它似乎应该属于这一类。相反,它被认为是一个类似等号的运算符
可能有一个明显的解释,或者我不理解某些东西(很容易理解)。如果它是一个属性,那么您将无法测试某些东西是否是未定义的,因为未定义的值不能有属性
更糟糕的是,如果一个变量未声明,那么尝试测试该变量上的属性将抛出引用错误。因为
typeof
在JavaScript中是通用的(也就是说,您可以对任何变量使用它),所以它可以作为对象上的属性实现。但是,如果是,您将无法在null
和undefined
类型上调用它
if(someNullVariable.typeof . . .) { . . . } // error
但是,由于它是一个运算符,因此您可以独立于正在检查的内容使用它:
if(typeof someNullVariable === "null") { . . . } // Match!
可能重复的Ok感谢一吨,这是有意义的!我会记住的。好吧,我明白了,这使它在实践中更有用。谢谢