JavaScript变量类型转换

其他基本类型转化为字符串

console.log("" + null);   // "null"
console.log("" + undefined); // "undefined"
console.log("" + false);   // "false"
console.log("" + true);   // "true"
console.log("" + 0);     // "0"
console.log("" + NaN);    // "NaN"
console.log("" + Infinity); // "Infinity"

其他基本类型转化为数字

console.log(+null);     // 0
console.log(+undefined);   // NaN
console.log(+false);     // 0
console.log(+true);     // 1
console.log(+"");      // 0
console.log(+'1');      // 1
console.log(+'1x');     // NaN

引用类型转换为字符串和数字

引用类型转换为字符串:优先调用toString方法(如果有),否则,调用valueOf方法(如果有),其他报错

引用类型转化为数字:优先调用valueOf方法(如果有),否则,调用toString方法(如果有),其他报错

var a = {};
console.log(a.toString());  // "[object Object]"
console.log(a.valueOf());  // {}

console.dir(a + "");     // "[object Object]"
console.dir(+a);       // NaN

== 比较隐式转换

  1. null和undefined,相等
  2. 数字和字符串,转化为数字再比较。
  3. 如果有true或false,转换为1或0,再比较。
  4. 如果有引用类型,优先调用valueOf。

results for ""

    No results matching ""