1、字符串的unicode表示
ES6中,可以用"\uxxxx"表示一个字符
"\u0061"
// "a"
范围:\u0000~\uFFFF,若超出这个范围则必须用双字节来表示
如果超出了字符串的表示范围像("\u20BB7"),系统默认表示为\u20BB+7,由于\u20BB是一个无法表示的数,所以只会显示一个"空格+7"
在此ES6做了改进,只有加一个{}即可
"\u20BB7"
// " 7""\u{20BB7}"
// "𠮷"
2、字符串的遍历器接口
ES6 为字符串添加了遍历器接口,使得字符串可以被for…of循环遍历。
除了遍历字符串,这个遍历器最大的优点是可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点。
JavaScript 规定有5个字符,不能在字符串里面直接使用,只能使用转义形式。
U+005C:反斜杠(reverse solidus)
U+000D:回车(carriage return)
U+2028:行分隔符(line separator)
U+2029:段分隔符(paragraph separator)
U+000A:换行符(line feed)
3、模板字符串(template string)
模板字符串反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
模板字符串的使用事项:
1、如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。
2、模板字符串中嵌入变量,需要将变量名写在${}之中。
3、{}可以放入任意的 JavaScript 表达式,可以进行运算,以及引用对象属性,调用函数等
let x = 1;
let y = 2;`${x} + ${y} = ${x + y}`
// "1 + 2 = 3"let obj = {x: 1, y: 2};
`${obj.x + obj.y}`
// "3"function fn() {return "Hello World";
}`foo ${fn()} bar`
// foo Hello World bar
4、如果大括号中的值不是字符串,将按照一般的规则转为字符串。比如,大括号中是一个对象,将默认调用对象的toString方法。
var place={};
let msg = `Hello,${place}`;
console.log(msg); //Hello,[object Object]
5、可以调用立即执行函数直接引用
let func = (name) => `Hello ${name}!`;
func('Jack') // "Hello Jack!"