Contents

ES6笔记(二)字符串和正则表达式

字符串

字符串模板

字符串模板用``来表示,示例如下:

1
 let template = `${变量1}`

可以看到字符串模板主要有两个特点

  1. 字符串换行不再需要+来拼接,里面的空格换行都会保留;
  2. 字符串里可以用${}的形式来表示变量,当然这里也可以写一些简单的表达式如${1+1}或是三元表达式${a=1?true:false},还可以调用函数${fn()};

标签模板

标签模板的意思就是可以用函数来调用字符串模板,当然这个函数的参数有规定的。示例如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
 //先定义这个函数 
 function tag (arr, ...arg){
    //...表示不确定参数个数 
    console.log(arr); 
    console.log(...arg); 
} 
    // 准备一个变量 
    let world = 20; 
    let sayHi= 66; 
    // 函数调用 
    tag(hello, ${ world },${sayHi})

从上面看出,这个函数的规则就是第一个参数是一个数组,里面放的是普通的字符串,而第二个参数就是${}里面的变量,一般用标签模板来过滤HTML字符串,了解即可,用的多的还是字符串模板。

关于字符串编码

  1. 我们经常听到utf-8,它是一种通用的字符编码格式,但其实js里面对于字符串采用的是utf-16来处理的;
  2. 不管是utf-8还是utf-16都是Unicode码的一种实现,什么是Unicode码呢?不需要了解太多,你只要知道这是一个能代表任何字符的大集合就好了;
  3. 在js里字符的表示形式是这样的\uxxxx,xxxx叫做码点,对于码点大于0XFFFF的字符来讲,ES5是不能正确处理的,ES6对此完善,并提供了一些API如下:
1
2
3
4
5
6
7
8
 codePointAt(index)
 //传入索引值,返回其对于位置的码点 
 String.fromCodePoint()
 //传入码点,返回对应字符串 
 at(index)
 //返回给定位置的字符 
 normalize()
 //顾名思义格式化,了解即可

关于字符串的一些方法

有个印象就好,废话不多说上API:

1
2
3
4
 includes(str, index)//如果在字符串中检测到指定文本,返回true,否则false。 
 startsWith(str, index)//如果在字符串起始部分检测到指定文本,返回true,否则返回false。 
 endsWith(str, index)//如果在字符串的结束部分检测到指定文本,返回true,否则返回false。 
 str.repeat(n)//表示将字符串str重复n次

正则表达式

正则表达式主要增加了几个修饰符,几个属性,先不看,就是这么任性,因为看了也白看,而且现在用的也不多。以后有机会有精力再看吧。