ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript_javascriptスキルにおける二重感嘆符の役割を紹介!!

JavaScript_javascriptスキルにおける二重感嘆符の役割を紹介!!

WBOY
リリース: 2016-05-16 16:35:49
オリジナル
1201 人が閲覧しました

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

は true または false のみです。

次のような例をよく見かけます:

コードをコピー コードは次のとおりです:

var a;
var b=!!a;

a のデフォルトは未定義です。 !a は true、!!a は false であるため、b の値は、主に後続の判断を容易にするために、未定義または他の値ではなく false になります。

!! 通常、次の式をブール型データ (ブール値) に強制するために使用されます。つまり、
は true または false のみです。 JavaScript は型指定が弱い言語 (変数には固定データ型がない) であるため、次のような対応する型にキャストする必要がある場合があります:

a=parseInt(“1234″)
a=”1234″-0 //转换为数字
b=1234+”” //转换为字符串
c=someObject.toString() //将对象转换为字符串
ログイン後にコピー

タイプ 1 と 4 は明示的な変換であり、タイプ 2 と 3 は暗黙的な変換です

ブール変換、JavaScript 規約は

false、未定義、null、0、"" は false

true、1、"somestring"、[オブジェクト] は 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);
ログイン後にコピー
この例は、undiffed と null が使用されている場合、1 つの感嘆符を使用すると true を返し、2 つの感嘆符を使用すると false を返すことを示しています。したがって、2 つの感嘆符の役割は、変数の値が明示的に設定されている場合 (非) です。 -null/unified/0/"" およびその他の値)、変数の実際の値に基づいて結果が返されます。設定されていない場合、結果は false を返します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート