JavaScript ES6 字符串新特性详解:Unicode、模板、遍历与查找
本文详细介绍 JavaScript ES6 中字符串的四个重要新特性。包括使用花括号表示超过16位的Unicode字符,利用反引号定义支持变量嵌入和多行的模板字符串,通过 for-of 循环遍历字符,以及新增的 startsWith、endsWith 和 includes 方法判断字符串包含关系,还有 repeat 方法复制字符串。
以下是 JavaScript ES6 中字符串新增的四个主要用法。
Unicode 字符的新表示方法
一、Unicode 字符的新表示方法
Unicode 字符通常占用 21 个比特,而大多数 JavaScript 字符为 16 位,采用 UTF-16 编码。对于超过 16 位的字符,需要使用两个常规字符来表示。
例如,以下代码输出一个 Unicode 小火箭字符('\uD83D\uDE80'),你可以在浏览器控制台中尝试运行:
console.log('\uD83D\uDE80');
在 ECMAScript 6 中,可以使用更简洁的新表示方法:
console.log('\u{1F680}');
多行字符串定义和模板字符串
二、多行字符串定义和模板字符串
模板字符串提供了三种实用的语法功能。
首先,模板字符串支持嵌入字符串变量:
let first = 'Jane';
let last = 'Doe';
console.log(`Hello ${first} ${last}!`);
// Hello Jane Doe!
其次,模板字符串支持直接定义多行字符串:
let multiLine = `
This is
a string
with multiple
lines`;
第三,如果在字符串前添加 String.raw 前缀,字符串将保持原始状态。反斜线(\)不再表示转义,其他特殊字符如 \n 也不会被转义:
let raw = String.raw`Not a newline: \n`;
console.log(raw === 'Not a newline: \\n'); // true
循环遍历字符串
三、循环遍历字符串
字符串现在支持可遍历循环,你可以使用 for-of 来遍历字符串中的每个字符:
for (let ch of 'abc') {
console.log(ch);
}
// Output:
// a
// b
// c
此外,你可以使用展开运算符(...)将字符串拆分为字符数组:
let chars = [...'abc'];
// ['a', 'b', 'c']
字符串包含判断和重复复制字符串
四、字符串包含判断和重复复制字符串
新增了三个方法用于检查一个字符串是否包含另一个字符串:
> 'hello'.startsWith('hell')
true
> 'hello'.endsWith('ello')
true
> 'hello'.includes('ell')
true
这些方法均接受一个可选的第二个参数,用于指定搜索的起始位置:
> 'hello'.startsWith('ello', 1)
true
> 'hello'.endsWith('hell', 4)
true
> 'hello'.includes('ell', 1)
true
> 'hello'.includes('ell', 2)
false
repeat() 方法用于重复复制字符串:
> 'doo '.repeat(3)
'doo doo doo '
总结
以上介绍了 JavaScript ES6 中字符串的四个新用法。希望这些内容对大家有所帮助,如有任何疑问,欢迎留言交流。
JS split切割后出现空字符串怎么过滤
2026-11-05 16:00:30
在 React 或 Vue 项目中封装使用 JS 节流防抖
2026-11-05 15:27:29
JavaScript中怎么将带小数的字符串转为整数?
2026-11-05 14:32:38
怎么用JavaScript策略模式重构电商促销计算逻辑?
2026-11-05 14:01:09
JS使用constructor判断数据类型可靠吗
2026-11-05 13:49:41
