为什么typeof null在switch语句中行为异常?

dta*_*dta 3 javascript null typeof switch-statement

众所周知

typeof null
Run Code Online (Sandbox Code Playgroud)

返回"对象".

但是,我有一段看起来像这样的代码:

switch(typeof null){
    case "object": 
        1; 
    default: 
        3;
}
Run Code Online (Sandbox Code Playgroud)

此代码返回3.

为什么typeof null返回的"object"不会导致case语句的第一个分支被执行?

Ama*_*osh 9

你错过break了第一种情况 - 所以它会落到default案例中并返回3.

switch(typeof null){
    case "object": 
        1; 
        break;
    default: 
        3;
}
Run Code Online (Sandbox Code Playgroud)