跳转至

es6模板字符串和新增方法

有内儿味了

es6之前都是什么乱七八糟的语法,到了es6总算有丶感觉了

模板字符串

模板字符串(template string)是增强版的字符串,用反引号``标识.它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量

使用反引号 `` 来包裹,且不会转义换行和空格可以用来定义多行字符

let str = `第一行,
第二行`
str

模板字符串中可以使用${}花括号定义一些表达式和变量或者调用函数

let studint = {
    name:'小明',
    'age':15,
    say(){
        return 'hello'
    }
}

let str = `我叫${studint.name},今年${studint.age}岁了,给大家打个招呼: ${studint.say()}`
str

includes

返回布尔值,表示是否找到了参数字符串

可以接受第二个参数表示从索引处开始查找

let str = 'i am tom'
s.includes('i')  // true
s.includes('i', 3)  // false
s.includes('s')  // false

startsWith

返回布尔值,表示参数字符串是否在原字符串的头部(详见上)

endsWith

返回布尔值,表示参数字符串是否在原字符串的尾部(详见上)

repeat

重复字符串n次,如果是小数则取整数次,如果是负数或者Infinity报错,如果参数是字符串会首先转换成数字

let str = 'hi'
str.repeat(2)  // "hihi"
str.repeat(3.9)  // "hihihi"
str.repeat(0)  // ""
str.repeat(0.9)  // ""

str.repeat('na')  // ""
str.repeat('3')  // "hihihi"

padStart

用于头部补全,第一个参数为补全最大长度,第二个为补充字符,如果第二参数为空则默认使用空格补全

如果原字符串的长度,等于或大于最大长度,则字符串补全不生效,返回原字符串

如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符串

let str = 'x'
str.padStart(5, 'ab')  // 'ababx'
str.padStart(4, 'ab')  // 'abax'

// 超出长度
str.padStart(0, 'ab')  // 'x'

// 截取
str.padStart(3,'1234')  // '12x'

padEnd

用于尾部补全

let str = 'x'
str.padEnd(5, 'ab') // 'xabab'
str.padEnd(4, 'ab') // 'xaba'

trimStart, trimEnd

消除头部/尾部的空格

let str = '  abc  '
str.trimStart()  // 'abc  '
str.trimEnd()  // '  abc'