文本格式化
字符串
JavaScript 中的 String 类型用于表示文本型的数据。它是由无符号整数值(16bit)作为元素而组成的集合。字符串中的每个元素在字符串中占据一个位置。第一个元素的 index 值是 0,下一个元素的 index 值是 1,以此类推。字符串的长度就是字符串中所含的元素个数。你可以通过 String 字面值或者 String 对象两种方式创建一个字符串。
String 字面量
可以使用单引号或双引号创建简单的字符串:
'foo'
"bar"
可以使用转义序列来创建更复杂的字符串:
16 进制转义序列
\x
之后的数值将被认为是一个 16 进制数。
'\xA9' // "©"
Unicode 转义序列
Unicode 转义序列在\u
之后需要至少 4 个字符。
'\u00A9' // "©"
Unicode 字元逸出
这是 ECMAScript 6 中的新特性。有了 Unicode 字元逸出,任何字符都可以用 16 进制数转义,这使得通过 Unicode 转义表示大于0x10FFFF
的字符成为可能。使用简单的 Unicode 转义时通常需要分别写字符相应的两个部分(译注:大于 0x10FFFF 的字符需要拆分为相应的两个小于 0x10FFFF 的部分)来达到同样的效果。
请参阅 String.fromCodePoint()
或 String.prototype.codePointAt()
。
'\u{2F804}'
// the same with simple Unicode escapes
'\uD87E\uDC04'
字符串对象
String
对象是对原始 string 类型的封装 .
const foo = new String('foo'); // 创建一个 String 对象
console.log(foo); // 输出:[String: 'foo']
typeof foo; // 返回 'object'
你可以在 String 字面值上使用 String 对象的任何方法—JavaScript 自动把 String 字面值转换为一个临时的 String 对象,然后调用其相应方法,最后丢弃此临时对象。在 String 字面值上也可以使用 String.length 属性。
除非必要,应该尽量使用 String 字面值,因为 String 对象的某些行为可能并不与直觉一致。举例:
const firstString = '2 + 2'; //创建一个字符串字面量
const secondString = new String('2 + 2'); // 创建一个字符串对象
eval(firstString); // 返回数字 4
eval(secondString); // 返回包含 "2 + 2" 的字符串对象
String
对象有一个属性 length
,标识了字符串中 UTF-16 的码点个数。举例,下面的代码把 13 赋值给了helloLength
,因为 "Hello, World!" 包含 13 个字符,每个字符用一个 UTF-16 码点表示。你可以通过数组的方式访问每一个码点,但你不能修改每个字符,因为字符串是不变的类数组对象:
const hello = 'Hello, World!';
const helloLength = hello.length;
hello[0] = 'L'; // 无效,因为字符串是不变的
hello[0]; // 返回 "H"
Unicode 标量值(Unicode scalar value)大于 U+FFFF 的字符(比如中文、日文、韩文、越南语中的一些不常用的文字或者 emoji 表情)使用 2 个代理码点存储在 UTF-16 中。比如,一个包含 U+20BB7“
标签:md,const,进阶,对象,JavaScript,Unicode,字符串,console,String From: https://www.cnblogs.com/zjy1020/p/17506048.html