Babel是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在浏览器或其他环境执行。
可将箭头函数转为普通函数Babel也可以用于浏览器JavaScript允许采用 \uxxxx 形式表示一个字符,其中“xxxx”表示字符的码点,,这种表示法只限于 \u0000 --\uFFFF 之间的字符。超出这个范围的字符,必须用两个双字节的形式表 达。 汉字就是用两个双字节表示的,也可以用 \uxxxxx 表示, \uxxxxx 只要将码点放入大括号,就能正确解读该字符。
JavaScript共有6种方法可以表示一个字符 ‘z’, ‘\172’, ‘\x7A’ , ‘\u007A’ , '\u{7A}ES6为字符串添加了遍历器接口,使得字符串可以被 for…of 循环遍历, 这个遍历器大的优点是可以识别大于 0xFFFF 的码点
为了表示语调和重音符号,Unicode提供了两种方法。一种是直接提供带重音符号的字符;另一种是提供合成符号,即原字符与重音符号的合成,两个字符 合成一个字符。这两种表示方法,在视觉和语义上都等价,但是JavaScript不能识别。
ES6提供字符串实例的 normalize() 方法,用来将字符的不同表示方法统一为同样的形式,这称为Unicode正 规化。不过,normalize() 方法目前不能识别三个或三个以上字符的合成。这种情况下,还是只能使用正则表达式,通 过Unicode编号区间判断。可以用来确定一个字符串是否包含在另一个字符串中。
includes():返回布尔值,表示是否找到了参数字符串。startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。有两个参数,第一个参数为 字符串, 第二个参数为起始位置,使用第二个参数 n 时,endsWith 的行为与其他两个方法有所不同。它针对前n个字符,而其他 两个方法针对从第n个位置直到字符串结束。repeat() 方法返回一个新字符串,表示将原字符串重复n次。
参数如果是小数,会被取整。参数是负数或者 Infinity,会报错。参数是0到1之间的小数,则等同于0,这是因为会先进行取整运算。参数NaN等同于0。参数是字符串,则会先转换成数字。ES7推出了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart 用于头部 补全,padEnd 用于尾部补全。
有两个参数第一个参数用来指定字符串的小长度第二个参数是 用来补全的字符串。如果原字符串的长度,等于或大于指定的小长度,则返回原字符串如果省略第二个参数,则会用空格补全长度模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可 以用来定义多行字符串,或者在字符串中嵌入变量。
如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。模板字符串中嵌入变量,需要将变量名写在 ${} 之中大括号内部可以放入任意的JavaScript表达式,可以进行运算,以及引用对象属性。模板字符串之中还能调用函数模板字符串的功能,不仅仅是上面这些。它可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。这被称为“标签模板”功能。 标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的模板字符串就是 它的参数。
String.raw() 方法,往往用来充当模板字符串的处理函数,返回一个斜杠都被转义(即斜杠前面再加一个斜杠) 的字符串,对应于替换变量后的模板字符串。如果原字符串的斜杠已经转义,那么 String.raw() 不会做任何处理。 String.raw() 方法可以作为处理模板字符串的基本方法,它会将所有变量替换,而且对斜杠进行转义,方便下一 步作为字符串来使用。也可以以作为正常的函数使用。这时,它的第一个参数,应该是一个具有raw属性的对象, 且raw属性的值应该是一个数组。