布尔型转换为数字、字符串:
+true === 1; //true
-true === -1; //true
+false === 0; //true
true + 1 === 2; //true
true * 100 === 100; //true
false + 1 === 1; //true
false * 100 === 0; //true
true + "" === "true"; //true
false + "" === "false"; //true
数字转换为布尔值、字符串:
!!1 === true; //true
!!-1 === true; //true
!!0 === false; //true
!1 === false; //true
!-1 === false; //true
!0 === true; //true
1 + "" === "1"; //true
字符串转换为布尔值、数字:
!!"abc" === true; //true
!!"" === false; //true
!!"0" === true; //true
!!"false" === true; //true
!"abc" === false; //true
!"" === true; //true
!"0" === false; //true
!"false" === "false"; //true
+"0xff" === 255; //true
+"0x10" === 16; //true
+"010" === 10; //true
+"100" === 100; //true
"100" * 1 === 100; //true
"0xff" * 1 === 255; //true
undefined转换为布尔值、数字、字符串:
!!undefined === false; //true
!undefined === true; //true
+undefined + "" === "NaN"; //true
+!!undefined === 0; //true
undefined + "" === "undefined"; //true
null转换为布尔值、数字、字符串:
!!null === false; //true
!null === true; //true
+null === 0; //true
null + 1 === 1; //true
null - 1 === -1; //true
null + "" === "null"; //true
NaN转换为布尔值、数字、字符串:
!!NaN === false; //true
!NaN === true; //true
+NaN + "" === "NaN"; //true
+!!NaN === 0; //true
+!NaN === 1; //true
NaN + "" === "NaN"; //true
注意事项:
字符串、true、false、null是可以直接进行数值运算的(字符串在运算时自动转化为相应数字、true会自动转化为1,false和null则转化为0),
而undefined和NaN则不可以直接参与运算(直接参与运算则会返回NaN,不过可以现转化为布尔值再转化为数字)。