
正文
JS中不同类型的值比较问题
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
我们比较数据的时候大多是以下两种情况:
3 > 4 ;
"m" > "n" ;
但有时候可能会出现比较符号两侧的数据类型不相同的场景,例如
5 > "a1";
"m">true;
2 < undefined;
"x" > null;
看似复杂,实际上只要知道他们的比较规则就简单了。
当比较的两个值类型不同时,会通过Number()方法将双方转化成数字类型的数值,然后再比较
要注意的是,如果比较双方有一个为NaN(转化后),则结果均为false
现在再研究一下各类型通过Number()的转化情况。
Number(1.5)-->1.5
Number("")-->0
Number("11")-->11
Number("a1")-->NaN
Number("1a")-->NaN
Number(true)-->1
Number(false)-->0
Number(null)-->0
Number(undefined)-->NaN
Number("0x11")-->17
现在遇到不同类型值的比较问题就清晰了,按照上面的列表对号入座进行转换再比较即可
例如:
"test">undefined --> false
false < "" --> false
"1" > false --> true






