为什么typeof是运算符而不是属性?

DR0*_*01D 3 javascript typeof

我正在学习Javascript,我遇到了一些"古怪"的东西.

为什么不是类型.length或类型的属性.name?它似乎应该属于那一类.相反,它被认为是一个类似于等号的运算符=

也许有一个明显的解释或我不理解的东西(很容易).

Que*_*tin 9

如果它是一个属性,那么你将无法测试是否有东西,undefined因为未定义的值不能具有属性.

更糟糕的是,如果变量未声明,那么尝试在其上测试属性将引发ReferenceError.