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

JavaScript字符串的長度問題

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

字符串的長度 length

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

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

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

語法:字符串變量名.length

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

2.字符索引:[]方法

描述:字符串后面接中括號(hào),中括號(hào)中寫數(shù)字,能夠訪問字符串中的所有個(gè)數(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()

描述:返回的是字符對應(yīng)的Unicode編

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

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

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

描述:concat()方法能夠?qū)⒍鄠€(gè)字符串連接起來,合成一個(gè)新的字符串

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

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

JavaScript字符串長度返回錯(cuò)誤的原因

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

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

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

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

'??'.length // 2

上面代碼中,JavaScript 認(rèn)為??的長度為2,而不是1。

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

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

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

總結(jié)

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

相關(guān)文章

最新評論

东乡| 莎车县| 湖北省| 汕头市| 萍乡市| 达孜县| 崇信县| 万盛区| 镇坪县| 武穴市| 阜城县| 阜康市| 敖汉旗| 蒲城县| 龙海市| 乌拉特中旗| 昭平县| 逊克县| 常熟市| 仁寿县| 唐海县| 大同市| 竹山县| 宾阳县| 铜鼓县| 越西县| 茂名市| 北碚区| 郯城县| 杭锦后旗| 当阳市| 德昌县| 泰安市| 肇东市| 天柱县| 勐海县| 墨竹工卡县| 依安县| 收藏| 阿克| 龙游县|