これにより、配列が空かどうかを迅速に 判定できることがわかりますが、原理にはいくつかの疑問があります。
既知:
1. 等価演算子「==」: 最初に変換してから比較します。オペランドの 1 つがブール値の場合、等しいかどうかを比較する前に数値に変換されます。False は 0 に、True は 1 に変換されます。
2. 一方のオペランドがオブジェクトで、もう一方のオペランドがオブジェクトではない場合は、オブジェクトの valueOf() メソッドを呼び出し、取得した基本型の値を変換に使用します。
したがって、[]==fasle の右側は 0 に変換されます。左側はどうでしょうか?どのように変換されるのでしょうか?
世界只因有你2017-07-05 10:53:52
配列が空であると判断するにはこのメソッドを使用するのが合理的ですよね?
リーリー弾まないと思っていたら、弾いてしまいました。ほとんどの場合、やはり長さで判断されます。もちろん、要素の数を判断する際には、長さも落とし穴になります。
滿天的星座2017-07-05 10:53:52
jsの内部機構としては空の配列はfalseなのでfalse==falseはtrueとしか言えません!次に、空ではない配列は当然 true に変換され、true==false は true ではありません。何かわかりにくいことはありますか?