好像是冷知識。
原理
每個字元都有對應的 ASCII 碼,所以背後是用這個碼來比大小的。
1 2 3
| console.log('@'.charCodeAt(0)) console.log('!'.charCodeAt(0)) console.log('@' > '!')
|
比比看
1 2 3 4
| const str1 = 'A' const str2 = 'B' console.log(str1 > str2) console.log(str1 < str2)
|
如果是字串的話,只會看第一個字元:
1 2 3 4
| const str1 = 'AJDSJOIDJOJS' const str2 = 'BADKAIJSOIDJ' console.log(str1 > str2) console.log(str1 < str2)
|
用這個方式來轉換大小寫
1 2 3 4 5 6 7 8 9 10
| const str = 'AbCdEFGhijkLMN' var result = '' for(var i=0; i<str.length; i++) { if(str[i]>='A' && str[i]<='Z') { result += String.fromCharCode(str[i].charCodeAt(0) + 32) } else { result += str[i] } } console.log(result)
|
其實就跟用 ASCII 碼的作法一樣,只是這樣的可讀性更好而已。