- //1.纯数字之间比较
- console.log(1<3);//true
- //2.纯字符串比较,先转成ASCII码,按位依次比较
- console.log("1"<"3");//true
- console.log('5'<'10');//false
- console.log("5".charCodeAt());//53
- console.log("1".charCodeAt());//49
- console.log("123"<"123");//false
- console.log("a"<"b");//true
- console.log("a".charCodeAt());//97
- console.log("b".charCodeAt());//98
- console.log("abc"<"aad");//false
- //3.汉字比较
- console.log("我".charCodeAt());//25105
- console.log("的".charCodeAt());//30340
- console.log("我"<"的");//true,汉字比较,转成ASCII码
- //4.当数字和字符串比较,且字符串为数字。则将数字字符串转为数字
- console.log(123<"124");//true,下面一句代码得出124的ASCII码为49,所以并不是转成ASCII比较
- console.log("124".charCodeAt());//49
- //5.当数字和字符串比较,且字符串为非纯数字时,则将非数字字符串转成数字的时候会转换为NaN,当NaN和数字比较时不论大小都返回false.
- console.log(13>"abc")//false
- 总结起来就3点:
1:纯字符串比较,转换成ASCII码在进行比较;
2:纯数字和数字字符串相比较,则将字符串数字隐式转换成数字再进行比较;
3:纯数字和非数字字符串比较,都返回false;