等于 ==
返回的都是boolean类型 要么是true要么是false
==比较值 ===比较值的同时还要比较地址(数据类型)
console.log(null == undefined) //true
console.log(typeof null); //object
console.log(typeof undefined); //undefined
console.log(typeof null == typeof undefined); //false
console.log(Boolean(null) == Boolean(undefined)); //true
console.log(null == false); //false null不会自动转为boolean类型
console.log(undefined == false); //false undefined也不会自动转换布尔类型
//恒等 === 比较值还要比较地址 == ==比较是值
var a = '123' //字符串
var b = 123 //number
console.log(a == b); //true
console.log(a === b); //false
大于> 小于<
number比较,直接比较大小
number跟boolean比较,先将boolean转为number(true=>1 false=>0)再进行比较
number类型跟字符串类型比较,如果字符串里面存储的都是数值,对应的就是数值的比较
如果对应的字符串里面存储的是字符,会自动转换为number类型,转不了就不能比较,返回NaN
字符串跟字符串比较,比较的是ascii码
NaN特性:不能进行比较,返回false
console.log('a' > 'b');//false
console.log('A' > 'B');//false
console.log('A' == 'a');//false
console.log('a' > 1); //NaN
console.log('123' > 12);//true
console.log(5 > 4); //true
不等于 !=
console.log(2 != 3); //true
console.log(3 != 3); //false