ホームページ  >  記事  >  ウェブフロントエンド  >  JS の !! シンボル問題の詳細な解釈

JS の !! シンボル問題の詳細な解釈

亚连
亚连オリジナル
2018-06-22 13:51:082131ブラウズ

!! 通常、次の式をブール型データ (ブール値) に強制するために使用されます。つまり、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

tru​​e、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。