- TypeScript入門與實戰(zhàn)
- 鐘勝平編著
- 440字
- 2021-01-15 15:35:57
3.3.4 String
String類型表示文本字符串,它由0個或多個字符構成。
JavaScript使用UTF-16編碼來表示一個字符。UTF-16編碼以兩個字節(jié)作為一個編碼單元,每個字符使用一個編碼單元或者兩個編碼單元來表示。在底層存儲中,字符串是由零個或多個16位無符號整數(shù)構成的有序序列。例如,字符串'ab'的存儲結構如圖3-4所示。
在獲取字符串長度時,返回的是字符串中包含的編碼單元的數(shù)量。對于字符串'ab'而言,返回的長度是2。因為字符'a'和字符'b'均由一個編碼單元表示,總和為2。前面介紹過,在UTF-16編碼中,一個字符可能使用一個編碼單元或者兩個編碼單元來表示。若字符串中包含需要使用兩個編碼單元表示的字符,那么獲取字符串長度的結果可能不符合預期。例如下面的字符串:
01 '?'.length; // 2
此例中,我們在獲取字符“”的長度時得到的結果為2,而期望的結果可能為1。這是因為“
”字符需要使用兩個編碼單元來表示,即32個二進制位。字符串'
'的存儲結構如圖3-5所示。
此外,ECMAScript 2015規(guī)定了字符串允許的最大長度為253 - 1,該數(shù)值也是JavaScript所能安全表示的最大整數(shù)。
推薦閱讀
- AWS Serverless架構:使用AWS從傳統(tǒng)部署方式向Serverless架構遷移
- Visual Basic編程:從基礎到實踐(第2版)
- Apache Spark Graph Processing
- Nginx Essentials
- Learning Apache Mahout Classification
- 數(shù)據(jù)結構習題解析與實驗指導
- Java網(wǎng)絡編程核心技術詳解(視頻微課版)
- Qt 4開發(fā)實踐
- Mobile Forensics:Advanced Investigative Strategies
- Node.js 6.x Blueprints
- Java 9:Building Robust Modular Applications
- 大話代碼架構:項目實戰(zhàn)版
- Instant AppFog
- 深度學習:基于Python語言和TensorFlow平臺(視頻講解版)
- 微信公眾平臺服務號開發(fā):揭秘九大高級接口