ホームページ > 記事 > ウェブフロントエンド > JS ショートサーキット原則の適用例、code_javascript スキルを効率化する方法
js の論理演算では、0、""、null、false、未定義、NaN はすべて false と判断され、それ以外の場合は最初のオペランドを最初に計算します。 true に変換された場合は、左側の式の値が返され、それ以外の場合は 2 番目のオペランドが計算されます。 || 演算子のオペランドがブール値でない場合でも、返される値の型に関係なくブール値に変換できるため、ブール OR 演算とみなされます。
非ブール値を返す機能を使用します。非ブール値のオペランドに || を使用して、一連の代替値の中で最初に定義された非 null 値を選択します (最初の値は false ではありません)。 )
例:
var max = max_width || obj.max_width ||
var attr "";この操作は、変数が定義されているかどうかを確認するためによく使用されます。定義されていない場合は、初期値を指定します。これは、関数パラメーターのデフォルト値を定義するときに便利です。
&& では、最初の式が最初に評価され、それが false の場合、2 番目の式は処理されません。そうでない場合は、後続の式が処理されます。最初の非真の式の値を左から右に選択し、見つからない場合は最後の式の値を返します。
例: (味は慎重に考慮する必要があります)
2 && 's1' && '123' && 'sss' 式の値は 'sss' と等しい
2 && ' s1' && '' && 'sss' 式の値は '' に等しい
2 && 's1' && NaN && 'sss' 式の値は NaN に等しい
if(a >=5) {
alert("Hello");
は次のように簡略化できます。
typeof 5 と typeof !!5 の違いは、これはより厳密な書き方であり、!! の機能は他の型の変数を bool 型に変換することです。たとえば、if(!!attr) => if(attr)
js の || と && の機能はコードを合理化するのに役立ちますが、コードの可読性も低下します。そのためには私たち自身で重さを量る必要があります。
JS での startWith 関数の独創的な実装、alert(!'asdf'.indexOf('s')) =》 !0 = true