经过babel的转换后
其实原理就是字符串拼接。所以如果${}中不是字符串,则会类型转换成字符串
标签模板
标签模板更多的是用来自定义拼接规则的。
手写startsWith、endsWite、includes
v8 js源码中的startsWith
includes
repeat方法返回一个新字符串,表示将原字符串重复n次。
如果repeat的参数是负数或者Infinity,会报错。
v8 js源码中的repeat
fromCharCode不能识别码点大于0xFFFF的字符。需要使用fromCodePoint
同样charCodeAt无法识别大于0xFFFF的字符 需要使用codePointAt
你好,
JS生成重复字符串再新ES标准中很简单,只需使用字符串的repeat方法就可以实现:
var str = 'Test'str = str.repeat(3) // TestTestTest
但是这个方法是ES2015中新增的标准,在老规范中是无法被兼容的。但是,我们也可以用其他的方法实现:
var str = 'Test'str = new Array(3 + 1).join(str) // TestTestTest
另外,使用最原始的循环遍历也是可以的:
var str = 'Test'for (var i = 3 - 1 i i--) {
str += 'Test'
}
// str => TestTestTest
因此,我们可以得到一个兼容的repeat方法:
String.prototype.repeat = String.prototype.repeat || function(num) {return new Array(num + 1).join(this)
}
'Test'.repeat(3) // TestTestTest
好了,就这么多了,希望能解决你的问题。