我正在学习Javascript,并发现了一些感觉有点“古怪”的东西。
为什么typeof不像.length或.name那样是一个属性呢?它似乎应该属于这个范畴。相反,它被认为是一个操作符,类似于等号=。
也许有一个显而易见的解释,或者我没有理解某些东西(很容易发生)。
为什么typeof不像.length或.name那样是一个属性呢?它似乎应该属于这个范畴。相反,它被认为是一个操作符,类似于等号=。
也许有一个显而易见的解释,或者我没有理解某些东西(很容易发生)。
由于typeof
在JavaScript中是通用的(也就是说,您可以对任何变量使用它),因此它可以被实现为Object上的一个属性。但是,如果这样做,您将无法在null
和undefined
类型上调用它。
if(someNullVariable.typeof . . .) { . . . } // error
但是,由于它是一个运算符,您可以独立使用它,而不受您正在检查的内容的影响:
if(typeof someNullVariable === "null") { . . . } // Match!