如何确定javascript对象是简单还是复杂?

And*_*rey 5 javascript object-model

基本上我需要分清以下两点:

var simple = 5 // or "word", or 56.78, or any other "simple" object
var complex = {propname: "propvalue", "otherprop": "othervalue"}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ock 8

使用typeof运算符可以确定以下内容:

"number"        Operand is a number
"string"        Operand is a string
"boolean"       Operand is a Boolean
"object"        Operand is an object
"undefined"     Operand is not defined.
Run Code Online (Sandbox Code Playgroud)

编辑: 正如在评论中建议的那样,您可能还想检查值是否为null,typeof null返回对象也是如此.

  • 信不信由你,`typeof null`是''object'.克罗克福德有一个实地日... (4认同)

Dig*_*ane 6

你可以使用typeof

typeof 5 == "number";
typeof 1.5 == "number";
typeof true == "boolean";
typeof "word" == "string";
typeof {} == "object";
Run Code Online (Sandbox Code Playgroud)

基本上:

if(obj == null) {
  //null or undefined
}
else if(typeof obj == "object") {
  //It's "complex"
}
else {
  //Primitive or "simple"
}
Run Code Online (Sandbox Code Playgroud)

注意:null会返回"object",所以需要检查一下。