你好,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 - 1ii--) {str += 'Test'}// str =>TestTestTest因此,我们可以得到一个兼容的repeat方法:String.prototype.repeat = String.prototype.repeat || function(num) {return new Array(num + 1).join(this)}'Test'.repeat(3)// TestTestTest好了,就这么多了,希望能解决你的问题。
经过babel的转换后
其实原理就是字符串拼接。所以如果${}中不是字符串,则会类型转换成字符串
标签模板
标签模板更多的是用来自定义拼接规则的。
手写startsWith、endsWite、includes
v8 js源码中的startsWith
includes
repeat方法返回一个新字符串,表示将原字符串重复n次。
如果repeat的参数是负数或者Infinity,会报错。
v8 js源码中的repeat
fromCharCode不能识别码点大于0xFFFF的字符。需要使用fromCodePoint
同样charCodeAt无法识别大于0xFFFF的字符 需要使用codePointAt