Javascriptの中の&和𞓜
2107 ワード
次の議論のために2つのオブジェクトを用意します.
1.最初の操作数がBooleanタイプであり、値がfalseであれば、直接falseに戻ります.
2.最初の操作数がBooleanタイプで、かつ値がtrueであり、もう一つの操作数がobjectタイプであれば、このオブジェクトに戻ります.
3.両方の操作数がobjectタイプの場合、2番目のオブジェクトに戻ります.
4.任意の操作数がnullであれば、nullに戻ります.
5.いずれかの動作数がNaNであれば、NaNに戻ります.
6.任意の操作数がundefindedであれば、undefinedに戻ります.
|𞓜にとっても同様にBooleanタイプだけでなく、Booleanタイプの結果を返します.
実際、null、undefined、NaNはfalseと見なされ、対象はtrueとされます.
1.最初の操作数がbootleanタイプで、かつ値がtrueであれば、直接trueに戻ります.
2.最初の操作数がBooleanタイプであり、値がfalseであり、第二の操作数がobjectである場合、objectオブジェクトに戻ります.
3.両方の操作数がobjectタイプの場合、最初のオブジェクトに戻ります.
4.両方の操作数がnullであれば、nullに戻ります.
5.二つの操作数が全部NaNなら、NaNに戻ります.
6.両方の操作数がundefinedであれば、undefinedに戻ります.
var alice = {
name: "alice",
toString: function () {
return this.name;
}
}
var smith = {
name: "smith",
toString: function () {
return this.name;
}
}
javascriptでは、&&に対してbollanタイプだけでなく、Booleanタイプの結果にも戻ります.1.最初の操作数がBooleanタイプであり、値がfalseであれば、直接falseに戻ります.
2.最初の操作数がBooleanタイプで、かつ値がtrueであり、もう一つの操作数がobjectタイプであれば、このオブジェクトに戻ります.
3.両方の操作数がobjectタイプの場合、2番目のオブジェクトに戻ります.
4.任意の操作数がnullであれば、nullに戻ります.
5.いずれかの動作数がNaNであれば、NaNに戻ります.
6.任意の操作数がundefindedであれば、undefinedに戻ります.
alert(false && alice); // false
alert(true && alice); // alice
alert(alice && smith); // smith
alert(smith && alice); // alice
alert(null && alice); // null
alert(NaN && alice); // NaN
alert(undefined && alice); // undefined
alert(alice && undefined); // undefined
|𞓜にとっても同様にBooleanタイプだけでなく、Booleanタイプの結果を返します.
実際、null、undefined、NaNはfalseと見なされ、対象はtrueとされます.
1.最初の操作数がbootleanタイプで、かつ値がtrueであれば、直接trueに戻ります.
2.最初の操作数がBooleanタイプであり、値がfalseであり、第二の操作数がobjectである場合、objectオブジェクトに戻ります.
3.両方の操作数がobjectタイプの場合、最初のオブジェクトに戻ります.
4.両方の操作数がnullであれば、nullに戻ります.
5.二つの操作数が全部NaNなら、NaNに戻ります.
6.両方の操作数がundefinedであれば、undefinedに戻ります.
alert(false || alice); // alice
alert(true || alice); // true
alert(alice || smith); // alice
alert(smith || alice); // smith
alert(null || alice); // alice
alert(alice || null); // alice
alert(null || null); // null
alert(NaN || alice); // alice
alert(alice || NaN); // alice
alert(NaN || NaN); // NaN
alert(undefined || alice); // alice
alert(alice || undefined); // alice
alert(undefined || undefined); // undefined