([] ==false)がtrueの場合、([] || true)が[]になるのはなぜですか? -JavaScript
問題の説明をよく見ると、([] ==false)と([] || true)の違いは次のとおりです-
最初のケースでは、緩い条件付きチェックを使用して、型強制が引き継ぐことができます。
2番目のケースでは、フックの下で型強制の代わりに関数Boolean()を使用するそれぞれのブール値(真または偽)に対して[]を評価しています。
どちらの場合も舞台裏で行われる変換を明らかにしましょう。
ケース1 −([] ==false)
MDN docsによると、2つのデータ型がxとyが緩い等式演算(==)を使用して比較されると言う場合、
ブール値は、Number()関数を使用して数値に変換されます-
したがって、条件は次のようになります-
[] == 0// Number(false) = 0
次に、オブジェクトタイプの変数がプリミティブ値に変換される場合-
"" == 0
そして最後に、空の文字列が数値に変換されます-
0 == 0
上記は最終的にtrueを返します
ケース2 −([] || true)
この場合、[]の真偽の値は、組み込みのBoolean()関数を使用してブール値に変換することによってチェックされます。そして、
Boolean([]) = true
したがって、真の値[]は保持されます。
-
PreventDefault()vs JavaScriptでfalseを返しますか?
PreventDefaultは、URLクリックなどでページをリダイレクトしないなどのイベントが発生したときに、デフォルトのブラウザの動作を停止します。 また、returnfalseは、イベントが発生したときにデフォルトのブラウザーの動作を停止し、イベントを伝播させません。コールバックの実行も停止され、呼び出されるとすぐに返されます。 以下は、PreventDefault()のコードであり、JavaScriptでfalseを返します- 例 <!DOCTYPE html> <html lang="en"> <head> <meta
-
JavaScriptで誤った値を特定する
JavaScriptでは、ブール型-false として評価されると、次の値がfalseと評価されます。 0 空の文字列: 、、または `` null 未定義 NaN —数値ではありません 以下は、JavaScriptで偽の値を識別するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="widt