类型转换

类型转换

基本原则:

  1. null和undefined相等
  2. 基本类型(string,number,boolean)与number比较都会被转换成number
  3. object类型比较会调用(valueOf,doSring)
  4. Date对象是object类型中的特例(优化先尝试toString,再valueOf)

例子

console.log("" == '0');   false ;//字符串与字符串之间的比较 ""!="0" 
console.log(0 == '');       true;   //number与string 比较时 会尝试吧string装换为数值 空字符为0
console.log(0 == '0'); true    // 字符串  "0"会被装换成0 再进行比较
console.log([] == ![]);     true     // 布尔与object比较,原则3,原则2
var a = 0, b = {};a==b      false    // number与object比较,原则3

if的判断

if()括号内的表达式都会被装换成boolean类型;

if("hello"){
  console.log("hello");
}//会输出 "hello"为非空字符串 为true;

if(""){
  console.log("false");
}//不会输出 空字符串转换成boolean为false;

if(" "){
  console.log(" 空格字符 != 空字符串”")
}//会输出 空格字符也属于字符串;

if([0]){
    console.log("array");
}//会输出 object类型装换成boolean为true;

if("0.00"){
  console.log("true");
}//任何非空字符串都为true

boolean转换原则

  • undefined与null都为false;
  • Boolean 直接判断
  • Number 0与NaN为false,其它都为true;
  • String 空字符为false,其它都为true;
  • object 为true;

你可能感兴趣的:(类型转换)