<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <script> // 基本数据类型VS基本数据类型(==) //js中6个false值:false,0,NaN,"",undefined,null //toNumber->Number(value)->value*1,都是转换成number // console.log(true==1)//true -> 1===1 // console.log(true==0)//false -> 1===0 // console.log("1"==1)//true -> 1===1 // console.log("2"==1)//false -> 2===1 // console.log("1"==true)//true -> 1===1 // console.log("0"==true)//false -> 0===1 // console.log("true"==true)//false -> NaN===1 // console.log("true"==false)//false -> NaN===0 // 对象类型VS对象类型(==) // console.log({}=={})//false // console.log([]==[])//false // console.log([]!=[])//true //对象类型VS基本数据类型(==),数组用里头的值来对比,在转换成字符串,都是转换成number //1.ValueOf ->[] 2.toString() console.log([]==![])//true ->[]==(![])->[]==false->""==false->true console.log([1] == 1); //true console.log([1] == "1"); //true console.log([0] == 1); //false console.log([0] == "0"); //true// var num=123; // num.a=234; -> 隐式创建对应的包装类对象,用完就销毁了 // console.log(num) -> 还是基本数据类型 // console.log(typeof num) // console.log(num.a) -> 隐式创建对应的包装类对象,用完就销毁了 </script> </body> </html>