最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript字符串的長度問題

 更新時間:2023年02月10日 10:09:10   作者:誤念  
這篇文章主要介紹了JavaScript字符串的長度問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

字符串的長度 length

描述:JavaScript提供了一系列方法,來幫助我們更好的使用字符串

1.測量字符串長度:length屬性

描述:length屬性返回字符串的長度和字符串的個數(shù)

語法:字符串變量名.length

?? ?var i = "你好";
?? ?var result = i.length;
?? ?console.log(result);

2.字符索引:[]方法

描述:字符串后面接中括號,中括號中寫數(shù)字,能夠訪問字符串中的所有個數(shù)

語法:字符串變量名[]

?? ?var i = ["寶馬","法拉利","蘭博基尼"];
?? ?var c = i[1];
?? ?console.log(c);

3.獲取指定位置字符:charAt()方法和CharCodeAt()方法

描述:charAt()方法和CharCodeAt()兩者都是表示獲取指定位置的字符

  • charAt()

描述:根據(jù)指定位置的索引返回具體的字符

?? ?var i = 'niHaoWoShi';
?? ?var j = i.charAt(2);
?? ?console.log(i.charAt(2));
  • CharCodeAt()

描述:返回的是字符對應的Unicode編

注意:如果charCodeAt返回的值是:負數(shù)或大于字符串的長度則會返回的值是NaN

?? ?var j = i.charCodeAt(2);
?? ?console.log(j);

4.字符串連接:concat()方法

描述:concat()方法能夠將多個字符串連接起來,合成一個新的字符串

語法:字符串變量1.concat(字符串變量2,字符串變量3);

?? ?var str = 'niHaoWoShi';
?? ?var str2 = 'hello';
?? ?var str3 = 'sxt';
?? ?var i = str.concat(str2,str3);
?? ?console.log(i);

JavaScript字符串長度返回錯誤的原因

JavaScript 使用 Unicode 字符集。JavaScript 引擎內(nèi)部,所有字符都用 Unicode 表示。

每個字符在 JavaScript 內(nèi)部都是以16位(即2個字節(jié))的 UTF-16 格式儲存。也就是說,JavaScript 的單位字符長度固定為16位長度,即2個字節(jié)。

但是,UTF-16 有兩種長度:對于碼點在U+0000到U+FFFF之間的字符,長度為16位(即2個字節(jié));對于碼點在U+10000到U+10FFFF之間的字符,長度為32位(即4個字節(jié))。

JavaScript 對 UTF-16 的支持是不完整的,由于歷史原因,只支持兩字節(jié)的字符,不支持四字節(jié)的字符。

'??'.length // 2

上面代碼中,JavaScript 認為??的長度為2,而不是1。

總結一下,對于碼點在U+10000到U+10FFFF之間的字符,JavaScript 總是認為它們是兩個字符(length屬性為2)。所以處理的時候,必須把這一點考慮在內(nèi),也就是說,JavaScript 返回的字符串長度可能是不正確的。

ES6加強了對unicode的支持,以前必須拆分成2個2字節(jié)unicode碼表示的字符,現(xiàn)在可以用大括號括起來,直接用一個碼點表示。

'\u{1F680}' === '\uD83D\uDE80'
// true

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

灵宝市| 和静县| 安庆市| 古丈县| 阳泉市| 怀来县| 平遥县| 咸丰县| 察隅县| 孝义市| 河津市| 衢州市| 鄂尔多斯市| 昌都县| 富平县| 丁青县| 松潘县| 淮阳县| 平原县| 新蔡县| 沁阳市| 常山县| 长阳| 彭阳县| 日喀则市| 观塘区| 潞西市| 孝昌县| 枣强县| 徐州市| 四平市| 景洪市| 德保县| 岳普湖县| 潜江市| 卓资县| 武陟县| 布尔津县| 四川省| 金秀| 汝城县|