コードは次のとおりです。
function write( msg){
for(var i = 0; i < argument.length; i ){
document.write(arguments[i] '
');
}
/ /about '&&'
test1 = 1 && 2 && 3 && 4;
test2 = '0' && 2 && 3 && 4; 4;
test4 = 2 && '私' && '愛' && 3 && 'あなた';
テスト 5 = '私' && '嫌い' && 1 && 0 && 'あなた'; && false && 'ihateyou' && '2';
test7 = 2 && true && 'ihateyou' && '23';
test8 = 4 && '未定義' && 'true' && '1'; 🎜>test9 = 4 && true && 未定義 && 'true' && '1';
test10 = 4 && true && 'null' && 'true' && '1';
test11 = 4 && true && null && 'true' && '1 ';
write(test1, test2, test3, test4, test5, test6, test7, test8, test10, test11); ------ --------------------------------');
//について '|| '
_test1 = 1 || 2 || 4;
_test3 = 0 || 4 ;
_test4 = 2 || '愛' || 'あなた';
_test5 = 0 || 'あなた'; 🎜>_test6 = false || 'ihateyou' || 'ihateyou' || '23' || '未定義' || 'true' || 'true' || 'null' ' || 'true' || '1';
_test11 = 0 || 'true' || '1'; _test6, _test7, _test8, _test9, _test10, _test11);
出力を見ると次のことが分かります:
'&&' の出力は次のとおりです:
コードをコピー
コードは次のとおりです:
4
4
0
null
各行の番号は、上記の各テストに対応します。
'||' の出力結果は次のとおりです:
コードをコピー
コードは次のとおりです:
1
2
0
true
注意深く比較すると、次のようになります。
連続する複数の && の式に 0、false、undefined、null が存在しない場合、最後の「部分式」、それ以外の場合は、式内の 0、false、未定義、および null が返されます。
複数の連続する || 式は、最初の「部分式」の値が 0、false、未定義、null のいずれかである場合、次の「部分式」の値が使用されます。 0、false、未定義、null ではない「部分式」が見つかるまで続き、それが式全体の値として使用されます。
補足:
上記は、「」という部分表現があった場合はどうすればよいかという状況を考慮していないようです。実際、別の表現方法を使用して && と || がどのように機能するかを説明できます。
For (...) && (...) && (...) ...
各部分式を左から右にたどって、各部分式をブール値にキャストします。ブール値 (部分式) が false の場合、式全体の値はこの部分式の値 (0 または false または未定義または null または '') になります。 )、次の部分式は評価されなくなります。すべてのブール値 (部分式) が true の場合、式全体の値は最後の部分式の値になります。
For (...) || (...) || (...) ...
各部分式を左から右にトラバースして変換します式は強制的にブール値になります。ブール (部分式) が true の場合、式全体の値はこの部分式の値になり、ブール (部分式) 式が false の場合、次の部分式は「無視」されなくなります。次に、ブール値 (部分式) が true であることが判明するまで、次の部分式のブール条件を決定します。すべてのブール値 (部分式) が false の場合は、最後の部分式の値 (0 または false または未定義または null または '') を返します。
ここで注意してください:
Boolean(false) != Boolean('false')、前者は false、後者は true です。
Boolean(未定義) != Boolean('未定義')、前者は false で、後者は true です。
Boolean(null) != Boolean('null')、前者は false、後者は true。
Boolean(0) != Boolean('0')、前者は false、後者は true。
ブール値('') == false