1、 概述
两个值比较返回布尔类型值
2、非相等运算符
2.1、字符串的比较
先比较第一个字符的Unicode码点,相等的话再比较第二个,以此类推。
小写的码点大于大写字母的码点
2.2非字符串的比较
如果都是原始类型值,转换为数字来进行比较
如果是对象或者数组,先调用valueOf再调用toString进行大小比较
3、严格相等运算符
它们的区别是相等运算符()比较两个值是否相等,严格相等运算符(=)比较它们是否为“同一个值”。如果两个值不是同一类型,严格相等运算符(=)直接返回false,而相等运算符()会将它们转换成同一个类型,再用严格相等运算符进行比较。
var obj1 = {};
var obj2 = {};
obj1 > obj2 // false
obj1 < obj2 // false
obj1 === obj2 // false
上面的三个比较,前两个比较的是值,最后一个比较的是地址,所以都返回false。
undefined === undefined // true
null === null // true
由于变量声明后默认值是undefined,因此两个只声明未赋值的变量是相等的。
var v1;
var v2;
v1 === v2 // true