es6模板字符串加换行 es6 string_ES6


一、传统意义上,JavaScript只有indexOf方法可以用来确定一个字符串是否包含在另一个字符串中。ES6又提供了3种新的方法。

a:新增方法

1.includes():返回布尔值,表示是否找到了参数字符串

2.startsWith():返回布尔值,表示参数字符串是否在源字符串的头部

3.endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部

这三个方法都支持第二个参数,表示开始搜索的位置。但是endsWith()和其他两个方法不同。它针对前n个字符,而其他两个方法针对从第n个位置到字符串结束位置之间的字符

例子:

var strings = "Hello ES6!"; strings.includes('o ES6!'); //true strings.startsWith('He'); //true strings.endsWith('!'); //true  strings.includes('Hello',0); //false strings.startsWith('H', 1); //false strings.endsWith('H',1); //true

b:对比indexOf()和includes()的区别

1.indexOf()返回的是数值型的,而includes()返回的是布尔型的

2.数组中的indexOf()不能判断数组中是否有NaN,而includes()可以

总之:如果想查找某个元素在数组中的索引位置,就用indexOf();如果想查找某个元素在数组中是否存在,就用includes()

二、新增repeat()方法

repeat()返回一个新字符串,表示将原字符串重复n次。

(1)参数如果是小数,会被取整

(2)参数如果是负数或Infinity会报错

(3)但如果参数是0到-1之间小数,则等同于0。(因为先取整运算了)

(4)参数NaN等同于0

例子:

'x'.repeat('3');//'xxx' 'x'.repeat('0'); //'' 'x'.repeat('NaN'); //'' 'x'.repeat('-0.2'); //'' 'x'.repeat('-1'); //报错:Uncaught RangeError: Invalid count value

三、ES2017引入字符串补全长度功能。

1.padStart():用于头部补全

2.padEnd():用于尾部补全

它们接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数用于补全的字符串。

(1)如果源字符串长度等于或大于指定的最小长度,则返回原字符串

(2)如果省略第二个参数,则用空格补全

例子:

'x'.padStart(2,'a'); //'ax' 'x'.padStart(2,'aa'); //'ax' 'x'.padStart(2); //' x' 'x'.padEnd(2,'a'); //'xa'

四、模板字符串

模板字符串是增强版的字符串,用(`)标识。

(1)它可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

(2)如果在模板字符串中需要使用反引号,则在其前面需要用反斜杠转义。

(3)如果表示多行字符串,所有空格和缩进都会被保留在输出中。

(4)在模板字符串中嵌入变量,需要将变量名写在${}中

(5)模板字符串中还可以调用函数

(6)模板字符串还可以嵌套

例子:

console.log(`Hello ES6 String拓展`); // Hello ES6 String拓展 console.log(`Hello ES6 String 拓展`); // Hello ES6 String 拓展 var tz = '拓展'; console.log(`Hello ES6 String${tz}`); // Hello ES6 String拓展 console.log(``Hello ES6` String拓展`); //`Hello ES6` String拓展 function templateFun(){return 'Hello ES6 String拓展'}; console.log(`${templateFun()}`); //Hello ES6 String拓展