ホームページ > 記事 > ウェブフロントエンド > JS の !! シンボル問題の詳細な解釈
!! 通常、次の式をブール型データ (ブール値) に強制するために使用されます。つまり、true または false のみにすることができます。この記事で紹介した JS の !! を見てみましょう。必要な方は参考にしてください
!! これは、一般的に次の式をブール型データ (boolean) に変換するために使用されます。 true または false のみを指定できます。
var a; var b=!!a;
aデフォルトは未定義です。 !a は true、!!a は false であるため、b の値は、主に後続の判断を容易にするために、未定義または他の値ではなく false になります。
JavaScript は弱い型指定言語 (変数には固定データ型がない) であるため、次のような、対応する型への強制変換が必要になる場合があります。
a=parseInt(“1234″) a=”1234″-0 //转换为数字 b=1234+”” //转换为字符串 c=someObject.toString() //将对象转换为字符串
1 番目と 4 番目の型は明示的な変換で、2 番目と 3 番目は明示的な変換です。型は明示的な変換です
ブール変換の場合、JavaScript 規約ルールは
false、undefinded、null、0、"" は false
true、1、"somestring"、[Object ] は true です
null、未定義、およびその他の暗黙的に変換された値の場合、! 演算子を使用すると true の結果が生成されるため、2 つの感嘆符を使用する目的は、これらの値を「同等の」ブール値に変換することです。
var foo; alert(!foo);//undifined情况下,一个感叹号返回的是true; alert(!goo);//null情况下,一个感叹号返回的也是true; var o={flag:true}; var test=!!o.flag;//等效于var test=o.flag||false; alert(test);この例は、unified および null の場合、1 つの感嘆符を使用すると true を返し、2 つの感嘆符を使用すると false を返すことを示しています。したがって、2 つの感嘆符の役割は、変数の値が明示的に設定されている場合 (Non-null/unified/ 0/"" およびその他の値)、変数の実際の値に基づいて結果が返されます。設定されていない場合、結果は false を返します。
JS の "!!"
var o={flag:true}; var test=!!o.flag;//等效于var test=o.flag||false; alert(test);null と unknown に対して ! 演算子を使用すると true の結果が生成されるため、 2 つの感嘆符を使用する目的は、明示的に設定されている場合です。 o の flag の値 (null/unknown/0""/ などではありません)。当然、test は o.flag と同じ値を取ります 設定されていない場合、test はデフォルトで null または unknown ではなく false になります。 。 上記は私があなたのためにまとめたものです。 関連記事:
ES6を使用してシングルトンモードを実装する方法
node.jsを使用してサブプロセスを作成する方法(詳細なチュートリアル)
WeChatアプレットでスライダーを使用してデータ値を設定する方法
WeChatミニプログラムにポップアップボトムメニューを実装する方法
以上がJS の !! シンボル問題の詳細な解釈の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。