字符串这边似乎没有什么大的变动,新加了一些原生的函数支持,不过项目中经常会用到underscore或者lodash这样的类库,这些方法看上去更像是官方的一个补充。
includes()
ES5中经常用indexOf判断字符串中是否包含某一字符或字符串片段。如今ES6新加了includes/startsWith/endsWith来进行辅助。
同时,还提供了第二个参数,提供开始搜索的位置。
1 | var s = "Hello world"; |
padStart(), padEnd()
字符串前后补足长度函数。注意,这个是从ES7才会开始支持。目前浏览器都不会支持。
模板字符串
反引号(`)来标识一串字符。可以用来定义多行字符串,行分隔符和所有空格、缩进会自动保留。
1 | console.log(`string text line 1 |
同时,模板字符串中支持变量嵌入。需要将变量名写在${}
之中。如果变量不是普通类型,会自动调用toString
方法输出。
因此,下面这行代码会报错。
1 | var msg = `Hello, ${place}`; // place is not defined |
模板使用<%…%>放置JavaScript代码,使用<%= … %>输出JavaScript表达式。
1 | var template = ` |
是不是有种JSP的即视感。