1

AzureMobileServicesのものをプレイし始めたところです。とてもかっこいいですが、サーバー側のデータベーススクリプトを変更しようとしているときに気付いた奇妙なことがいくつかあります。具体的なことの1つは、次のような簡単なステートメントを記述しているときです。

if(results.length == 0)

ゼロと比較するときは、==の代わりに===を使用する必要があると警告されました。

誰もがそれがなぜであるか知っていますか?

4

2 に答える 2

1

緩く型付けされた言語では、==(等式演算子)ではなく===(厳密な等式演算子)を使用すると便利なことがよくあります。そうしないと、等式チェック中にオブジェクトの型が強制変換されるためです。

たとえば、、、、、"0" == 0および。"" == 0[] == 0

ただし、それらのどれも=== 0

したがって、resultsたまたま空のプロパティを持つオブジェクトである場合はlength、次のようになります。

var results = {
  length: ""
}

results.length == 0と評価されtrueます。

于 2012-12-26T08:32:47.587 に答える
0

なぜなら

[] == 0 

本当ですが

[] === 0

そうではありません。

JavaScriptの比較演算子(特に厳密な等式)について読んでください。

于 2012-12-26T08:29:51.310 に答える