1

我刚刚发现这种拆分字符串的方法非常酷,但我不确定它为什么有效,任何人都可以向我解释一下。.split`` 而不是 .split("")

let str = "Justin"
console.log(str.split``) 
// ["J", "u", "s", "t", "i", "n"]

4

2 回答 2

1

它是标记模板的结果,str.split被视为模板 ( ``) 的标记,因此以空字符串作为其第一个参数进行调用。

于 2020-07-11T23:44:06.523 回答
1
let str = "Justin"
console.log(str.split``)

是一个带标签的模板,相当于:

let str = "Justin"
const strings = Object.freeze(Object.assign([""], { raw: [""] }))
console.log(str.split(strings))

这是有效的,因为String.prototype.split(separator[, limit])如果separator它没有实现该Symbol.split方法(在步骤 2 中检查)和[""].toString() === "".

于 2020-07-11T23:46:30.860 回答