検索

ホームページ  >  に質問  >  本文

node.js - JavaScript の理解できない部分

最近 JavaScript (NodeJs) を勉強しています
for を使用して JsonArray を走査するときに問題を見つけました
その時は次のように書きました:

論理的に言えば、このように書くのは間違っているはずです。正しいかどうかを判断するのは Null ですが、実行してみると実際に成功し、エラーは報告されず、出力は正常でした
黒い疑問符の顔...
これがどのように機能するのか教えてください...
できますか? obj2=obj1.result[i]はブール値を返しますか? ?
私は以前に JAVA を学んだことがありますが、JavaScript は JAVA よりも厳密さが少し緩く、私の考えが少し閉じ込められているように感じます...

ringa_leeringa_lee2756日前500

全員に返信(4)返信します

  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:36:41

    代入式は割り当てられた値を返します。つまりobj2=obj1.result[i]会返回obj1.result[i]です。

    js は動的言語です。プライバシー変換の機能があります。つまり、特定のデータ型が必要な場合、事前に設定されたルールに従って受信値を特定の型に変換します。

    あとは、代入式obj2=obj1.result[i]中返回值是obj1.result[i],那js引擎就会对obj1.result[i]をブール型に型変換するだけです。

    あなたならobj1.result[i]的值是除NaN,0,undefined,null,''之外的其他值,都会转换成true,否则则是false

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:36:41

    代入演算子の戻り値は代入された値です。これは、Java を含むすべての主要な C 言語で定義されています。

    Java の条件判定ではブール値のみを使用できますが、JavaScript ではブール値が必要です。指定した値がブール値でない場合は、暗黙的にブール値に変換されます。

    返事
    0
  • 为情所困

    为情所困2017-05-16 13:36:41

    JavaScript は型付けが弱い言語なので、自動的に変換されます~

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:36:41

    等号は代入を意味します。つまり、obj1.result[i] を obj2 に代入したことを意味するため、常に true になります

    = == === の違いを検索すると、質問を読んだ後に理解できます

    返事
    0
  • キャンセル返事