字元是可以比大小的

好像是冷知識。

原理

每個字元都有對應的 ASCII 碼,所以背後是用這個碼來比大小的。

1
2
3
console.log('@'.charCodeAt(0))  // 64
console.log('!'.charCodeAt(0)) // 33
console.log('@' > '!') // true

比比看

1
2
3
4
const str1 = 'A'  // 65
const str2 = 'B' // 66
console.log(str1 > str2) // false
console.log(str1 < str2) // true

如果是字串的話,只會看第一個字元:

1
2
3
4
const str1 = 'AJDSJOIDJOJS'  // A => 65
const str2 = 'BADKAIJSOIDJ' // B => 66
console.log(str1 > str2) // false
console.log(str1 < str2) // true

用這個方式來轉換大小寫

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) // abcdefghijklmn

其實就跟用 ASCII 碼的作法一樣,只是這樣的可讀性更好而已。

陣列的內建函式 跟字串有關的內建函式
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×