node.js - JavaScript の理解できない部分
ringa_lee
ringa_lee 2017-05-16 13:34:41
0
4
488

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

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

ringa_lee
ringa_lee

ringa_lee

全員に返信(4)
我想大声告诉你

代入式は割り当てられた値を返します。つまり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

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

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

いいねを押す +0
为情所困

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

いいねを押す +0
我想大声告诉你

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

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!