本页目录
length
只读属性包含字符串的长度(以 UTF-16 代码单元表示)
示例
基本用法
let zh = "中国";
console.log(zh.length);
// 2
let uni = "\u4e2d\u56fd";
console.log(uni.length);
// 2
let title = "KiloBytes";
console.log(title.length);
// 9
let site = "9991024.com"
console.log(site.length);
// 11
let empty = ""
console.log(empty.length)
// 0
长度不等于字符数的字符串
let emoji = "👩👩👦👦";
console.log(emoji.length);
// 11
let katex = "𝑥²≥0"
console.log(katex.length);
// 5
let zh = "𠮷"
console.log(zh.length);
// 2
let str = "A\uD87E\uDC04Z"
console.log(str.length);
// 4
使用ES6新增的扩展运算符(…)
function getStringLength(str) {
// 使用的字符串迭代器对字符进行迭代
return [...str].length;
}
let emoji = "👩👩👦👦";
console.log(getStringLength(emoji));
// 7
let katex = "𝑥²≥0"
console.log(getStringLength(katex));
// 4
let zh = "𠮷"
console.log(getStringLength(zh));
// 1
let str = "A\uD87E\uDC04Z"
console.log(getStringLength(str));
// 3
指定长度
let str = "KiloBytes";
str.length = 1;
console.log(str,str.length);
// "KiloBytes" 9
语法
- string.length
描述
该属性返回字符串中的代码单元数量。JavaScript 使用 UTF-16 编码,其中每个 Unicode 字符可以编码为一个或两个代码单元,因此 length 返回的值可能与字符串中 Unicode 字符的实际数量不匹配。对于拉丁文、西里尔文、众所周知的 CJK 字符等常见脚本,这应该不是问题,但如果你正在使用某些脚本,例如表情符号、数学符号或晦涩的汉字,你可能需要考虑代码单元和字符之间的差异。
语言规范要求字符串的最大长度为 253 - 1
个元素,这是精确整数的上限。 但是,具有此长度的字符串需要 16384TB 的存储空间,这在任何合理的设备内存中都容纳不了,因此实现倾向于降低阈值,从而允许字符串的长度方便地存储在 32 位整数中.
对于空字符串
,length 为0
。
静态属性 String.length
与字符串的长度无关。它是 String 函数的参数数量(简单地说,就是它有多少个形参),即 1
。