AzureMobileServicesのものをプレイし始めたところです。とてもかっこいいですが、サーバー側のデータベーススクリプトを変更しようとしているときに気付いた奇妙なことがいくつかあります。具体的なことの1つは、次のような簡単なステートメントを記述しているときです。
if(results.length == 0)
ゼロと比較するときは、==の代わりに===を使用する必要があると警告されました。
誰もがそれがなぜであるか知っていますか?
AzureMobileServicesのものをプレイし始めたところです。とてもかっこいいですが、サーバー側のデータベーススクリプトを変更しようとしているときに気付いた奇妙なことがいくつかあります。具体的なことの1つは、次のような簡単なステートメントを記述しているときです。
if(results.length == 0)
ゼロと比較するときは、==の代わりに===を使用する必要があると警告されました。
誰もがそれがなぜであるか知っていますか?
緩く型付けされた言語では、==(等式演算子)ではなく===(厳密な等式演算子)を使用すると便利なことがよくあります。そうしないと、等式チェック中にオブジェクトの型が強制変換されるためです。
たとえば、、、、、"0" == 0
および。"" == 0
[] == 0
ただし、それらのどれも=== 0
。
したがって、results
たまたま空のプロパティを持つオブジェクトである場合はlength
、次のようになります。
var results = {
length: ""
}
results.length == 0
と評価されtrue
ます。