在这种情况下,“对象”意味着什么?

时间:2013-01-01 12:25:59

标签: javascript

这是关于逐步执行json数组的上一个问题的结果。应答者大卫给出了一个很好的答案,但我不明白“对象”这个词在下面的'if'语句中是什么或者做什么。它似乎是一个字符串,但它似乎就像某种关键字一样任何人都可以帮忙吗?非常感谢。

function json2txt(obj) {
var txt = '';
    for (var key in obj) {
       if (obj.hasOwnProperty(key)) {
          if ("object" == typeof(obj[key])) {
             json2txt(obj[key]);
          } else txt += obj + '\t' + obj[key] + '\r';
       }
    }
}

1 个答案:

答案 0 :(得分:3)

JavaScript中的typeof operator为您提供一个字符串,告诉您操作数是对象引用,数字,原始字符串等。因此该行检查obj[key]是否为对象引用。

以下是typeof为您提供的内容(来自上面的链接),其中操作数的类型位于左侧:

  • Undefined"undefined"
  • Null"object"
  • Boolean"boolean"
  • Number"number"
  • String"string"
  • Object :(原生且未实施[[Call]]):"object"
  • Object :(原生或主持人确实实施[[Call]]):"function"
  • Object :(主机并且未实现[[Call]]):实现定义,但可能不是"undefined""boolean""number"或{{ 1}}。

值得注意的是,尽管"string"经常被写成一个函数,但它是一个函数,括号是不必要的。这条线也可以是:

typeof

您可能还会找到关于确定有用内容类型的博文:Say what?

相关问题