成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JS字符串竟然可以比大小?

開發 前端
最近在籌備面試,又開始被動刷編程題和算法題了。昨天在做一個字符串變形的題目時,我發現英文字母竟然可以比大小!

大家好,我是楊成功。

最近在籌備面試,又開始被動刷編程題和算法題了。

昨天在做一個字符串變形的題目時,我發現英文字母竟然可以比大小!!比如這樣:

'a' > 'b' // false
'a' < 'b' // true
'a' < 'B' // false

這是什么鬼?好奇心來了,我要搞懂它。

字符串比較的原理

通常情況下,數字比大小,就是按照數學中的值比較大小,沒有疑問。

而在 JavaScript 中,字符串比較是基于字符的 Unicode 值來進行的。

我查了 26 個英文字母的 Unicode 碼(大小寫不同),發現它們的 Unicode 碼是連續的,結果如下:

  • a~z:從 97 (a) 到 122 (z)。
  • A~Z:從 65 (A) 到 90 (Z)。

從上面的結果看,我們可以得出兩個結論:

  • 任意大寫字母的 Unicode 碼都比小寫字母的更小。
  • a-z 或 A-Z,Unicode 碼不斷遞增。

現在再看文章前面的比較題,就可以清晰的看到比較結果:

  • 'a' < 'b' 返回 true (因為 97 < 98)
  • 'a' < 'B' 返回 false (因為 97 不小于 66)

多字符如何比較?

當比較多字符的字符串時,JavaScript 會從左向右逐字符比較,直到找到不同的字符或到達一個字符串的末尾。

比如,要比較 'cbaa' 和 'cazz' 這兩個字符串的大小,過程如下。

第一步:比較第一個字母的大小,即比較 c 和 c,結果相等,進入下一步。

第二步:比較第二個字母的大小,即比較 b 和 a,此時 b > a,停止比較。

因為 b > a,所以 cbaa > cazz,比較結束。

注意:如果你需要確保大小寫不會影響比較結果,可以將字符串轉換成統一的大小寫形式再進行比較。

方法是使用 .toLowerCase() 或 .toUpperCase()。

可以做什么

基于以上特性,我們可以判斷某個字母的大小寫。

// 假設變量 n 是一個隨機字母
if(n >= 97 && n <= 122) {
    console.log('小寫字母')
}
if(n >= 65 && n <= 90) {
    console.log('大寫字母')
}

在字符串變形題目中,需要將大寫字母變為小寫,小寫字母變為大寫,那么就可以使用上面的方法判斷,并且轉換大小寫的。

當然,更簡單的方法是直接使用轉換函數,比如:

if(n == n.toLowerCase()) {
    // 小寫,需要轉換為大寫
    n = n.toUpperCase()
}
if(n == n.toUpperCase()) {
    // 大寫,需要轉換為小寫
    n = n.toLowerCase()
}

記住這個比較規則,下次遇到字符串比較的情況,別懵了。

責任編輯:姜華 來源: 程序員成功
相關推薦

2021-11-29 00:17:41

JS符串轉換

2010-10-11 15:47:46

MySQL字符串大小寫

2021-11-07 07:51:01

JavaString字符串

2010-05-26 15:24:09

MySQL字符串

2021-03-08 08:23:24

Java字符串截取

2009-06-23 14:13:00

Java字符串

2010-11-26 09:51:54

MySQL字符串

2024-04-01 08:41:39

字符串.NET

2010-03-19 13:57:30

Python字符串處理

2014-01-02 16:14:10

PostgreSQL字符串

2009-07-16 17:01:09

Swing字符串

2023-01-11 16:49:13

MySQL數據庫

2011-08-10 18:47:18

Cocoa字符串

2010-09-09 11:48:00

SQL函數字符串

2019-12-16 09:26:05

Java設計操作系統

2023-08-21 10:28:00

字符串字符Python

2009-09-14 10:42:03

LINQ生成字符串

2010-06-28 15:18:51

SQL Server

2024-01-04 09:17:03

前端開發CSV 格式JSON 字符串

2010-11-26 11:40:19

MySQL字符串大小寫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 青青草av| 成人福利网 | 亚洲视频在线一区 | 有码在线 | 作爱视频免费观看 | 欧美影院久久 | 成人精品一区二区三区中文字幕 | 久久久久国产 | 欧美一区二区三区四区视频 | 国产毛片久久久 | 久久成人免费 | 国产午夜精品久久久久免费视高清 | av黄色网| 日韩精品一区二区三区 | 在线观看视频91 | 蜜桃视频成人 | 精品1区| 久久久成人动漫 | 国产亚洲精品91 | 亚洲一级毛片 | 一级看片免费视频囗交动图 | 97视频在线免费 | 精品免费视频 | 日韩在线免费视频 | 九九亚洲 | 国产综合精品一区二区三区 | 成人激情视频在线播放 | 视频在线观看亚洲 | 99久久精品免费看国产四区 | 亚洲精品日韩精品 | 亚洲精品一区在线 | 欧美日韩亚洲一区 | 日本一区二区不卡 | 美女在线观看国产 | 8x国产精品视频一区二区 | 日韩成人在线观看 | 一区二区不卡视频 | 久久精品亚洲精品国产欧美 | 国产成人一区二区三区电影 | 在线亚洲一区二区 | 亚洲一区二区国产 |