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碼轉換進行比較~