javascript - [配列が空かどうかをすばやく判断する] []==false なぜ true が返されるのでしょうか?
習慣沉默
習慣沉默 2017-07-05 10:51:52
0
6
1296
リーリー

これにより、配列が空かどうかを迅速に 判定できることがわかりますが、原理にはいくつかの疑問があります。
既知:

1. 等価演算子「==」: 最初に変換してから比較します。オペランドの 1 つがブール値の場合、等しいかどうかを比較する前に数値に変換されます。False は 0 に、True は 1 に変換されます。

2. 一方のオペランドがオブジェクトで、もう一方のオペランドがオブジェクトではない場合は、オブジェクトの valueOf() メソッドを呼び出し、取得した基本型の値を変換に使用します。

したがって、[]==fasle の右側は 0 に変換されます。左側はどうでしょうか?どのように変換されるのでしょうか?

習慣沉默
習慣沉默

全員に返信(6)
黄舟

これは JavaScript の比較表です: 関係演算子と等価演算子

いいねを押す +0
typecho

http://tech.youzan.com/javasc...
読めば分かります

いいねを押す +0
大家讲道理

ブール値に変換して比較するため、
[]==false
=>
true == false //false

いいねを押す +0
刘奇

まず数値 0 に変換してから比較します。

いいねを押す +0
世界只因有你

配列が空であると判断するにはこのメソッドを使用するのが合理的ですよね?

リーリー

弾まないと思っていたら、弾いてしまいました。ほとんどの場合、やはり長さで判断されます。もちろん、要素の数を判断する際には、長さも落とし穴になります。

いいねを押す +0
滿天的星座

jsの内部機構としては空の配列はfalseなのでfalse==falseはtrueとしか言えません!次に、空ではない配列は当然 true に変換され、true==false は true ではありません。何かわかりにくいことはありますか?

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート