ホームページ  >  記事  >  ウェブフロントエンド  >  JS における ! と!! の違いと使い方を学びましょう

JS における ! と!! の違いと使い方を学びましょう

coldplay.xixi
coldplay.xixi転載
2020-06-29 17:34:411961ブラウズ

JS における ! と!! の違いと使い方を学びましょう

他の人の JS コードを見てこの使用方法を発見しました:

if (!!item.value) {
	param[item.name] = item.value;
}

長い間 js を勉強していなかったので、すぐに追加しましたそしてとても面白いものを見つけました。

推奨学習チュートリアル: javascript ビデオ チュートリアル

js での ! の使用法は比較的柔軟であり、実行に加えてよく使用されます。論理演算!タイプ判定に使える!上記のオブジェクトを使用して、ブール値
1,! を取得します。 変数はブール型に変換でき、null、未定義、空文字列の否定がtrue、それ以外がfalseとなります。

rreeee

2、! ! は型判定によく使われます。最初のステップ! (変数) の後に、論理否定演算が実行されます。js の初心者はよくこのような肥大化したコードを書きます。
変数 a が null でなく、未定義であるかどうかを判定するまたは、メソッド本体の内容は、空の文字列でない場合にのみ実行できます。

!null=true

!undefined=true

!''=true

!100=false

!'abc'=false

実際には、判定式

var a;
if(a!=null&&typeof(a)!=undefined&&a!=''){
    //a有内容才执行的代码  
}

を記述するだけで、上記と同じ効果が得られます。 a が実際の意味を持つ変数である場合にのみ、メソッドが実行されます。それ以外の場合、変数 null、未定義、および '' "空の文字列では、次のコードは実行されません。

要約すると、「!」となります。 " は論理 AND 演算であり、任意の変数と論理 AND してブール値に変換できます。 "!!" は論理 AND の否定演算であり、特に後者のコードは型を判断する際にシンプルかつ効率的であり、型を判断する必要がありません。複数回 null、未定義、空文字列を判定するための冗長コード

つまり、冒頭のコード !!value では、まず値を反転したブール値に変換し、得られたブール値を再度反転します。 value の値が null、未定義、または空の文字列の場合、if 本体のコードは実行されないことを保証するためです。

(!(~ []) {})[--[~ ""][ []]*[~ []] ~~! []] ({} [])[[~! []] * ~ []]

上記の js の結果を出力します、えっと…? ? ? ??...抜け出してください...

以上がJS における ! と!! の違いと使い方を学びましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。