7、JavaScript 关系运算符

<   >  >=  <=   !=   ===   !==

不同数据类型进行关系运算
一.和其他运算符一样,当关系运算符操作非数值时,要遵循以下规则

1、 两个操作数都是数值,则数值比较;

2、 两个操作数都是字符串,则比较两个字符串对应的字符串编码值(Asiic)(按位比较,从左到右);

ASIIC码是电脑内部,每一个字符和字符对于编码的一张表

 

①如果是两个单个字符进行比较,直接比较字符的ASIIC码值

②按位比较,如果比较出结果,则直接返回结果,不再往后比较

‘abcd’ > ‘adcb’ a=a 下一个 b<d 不成立返回false
3、 两个操作数有一个是数值,则将另一个转换为数值,在进行比较;

1==true 返回true 因为true转成数字是1

二.在相等和不等的比较上,如果操作数是非数值,则遵循以下规则

1、 一个操作数是布尔值,则比较之前将其转换为数值,false转成0,true转成1;

2、 一个操作符是字符串,则比较之前将其转成数值在比较;

3、 一个操作数是NaN,则==返回false,!=返回true,并且NaN和自身不等

 

null==undefined 返回true;

null==0 返回false

false==0返回true

true==1返回true
4、 =====区别:==仅判断数值是否相等,===判断数据类型和数值是否恒等;

 

当然你也可以在转换之前,将其转成数值型,他们还是相等的