JavaScript经常会比较字符串的大小,有的时候容易混淆,因此简单的梳理一下JavaScript字符串的比较:
//1.数字比较 console.log('数字比较:' + (12 < 3)); //false //2.字符串数字和数字比较 统一转换成数字进行比较 console.log('字符串数字和数字比较:' + (11 < '5')); //false //3.字符串和数字进行比较 字符串为非纯数字时,则将非数字字符串转成数字的时候会转换为NaN,当NaN和数字比较时不论大小都返回false. console.log('字符串和数字进行比较:' + (11 > 'FlyElephant')); //false console.log('字符串和数字进行比较:' + (11 <'FlyElephant')); //false //4.字符串数字比较 转换成ASCII码比较 console.log('字符串数字比较:' + ('11' < '5')); //fasle console.log('11'.charCodeAt()); //49 console.log('5'.charCodeAt()); //53 //5.字符串比较 转换成ASCII码进行比较 console.log('字符串比较:' + ('博客园' < 'FlyElephant')); console.log('博客园'.charCodeAt()); //21338 console.log('FlyElephant'.charCodeAt()); //70
通过上面的代码我们可以得出一个结论,字符串比较更倾向于转换成数字进行比较,只有两个操作数都是字符串的时候才会进行ASCII码转换进行比较~