这是关于逐步执行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';
}
}
}
答案 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?