typeof undefined对象不等于未定义变量的类型

Mic*_*per -1 javascript types

在JavaScript中,typeof {}返回"object",而评估{}返回undefined.为什么是这样?

var a;
a; //undefined
{}; //undefined
typeof a === typeof {}; //false
Run Code Online (Sandbox Code Playgroud)

Dan*_*nte 5

那是因为typeof a"undefined"typeof {}"object":

console.log(typeof a);    // "undefined"
console.log(typeof {});   // "object"
Run Code Online (Sandbox Code Playgroud)

另外,正如@adeneo评论的那样,{}不是undefined:

console.log({} == undefined);    // false
Run Code Online (Sandbox Code Playgroud)

  • 例如,问题是基于一种误解:`{}`在任何意义上都不是"未定义",当然也不是在技术意义上的"未定义"类型. (2认同)