0

これは、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';
       }
    }
}
4

1 に答える 1

3

JavaScriptのtypeof演算子は、オペランドがオブジェクト参照、数値、プリミティブ文字列などであるかどうかを示す文字列を提供します。そのため、その行はそれobj[key]がオブジェクト参照であることを確認しています。

typeofオペランドのタイプが左側にある(上記のリンクから)結果は次のとおりです。

  • Undefined:"undefined"
  • Null:"object"
  • Boolean:"boolean"
  • Number:"number"
  • String:"string"
  • Object: (ネイティブで [[Call]] を実装していません):"object"
  • Object: (ネイティブまたはホストであり、[[Call]] を実装します):"function"
  • Object: (ホストであり、[[Call]] を実装していません): "undefined""boolean""number"、またはであってはならない以外は実装定義"string"です。

typeof関数であるかのように書かれることがよくありますが、関数ではないため、括弧は不要であることに注意してください。その行は次のようになります。

if ("object" == typeof obj[key]) {

また、有用なものの種類を判断することに関する私のブログ投稿を見つけることもできます

于 2013-01-01T12:27:28.080 に答える