【发布时间】:2022-01-01 22:54:31
【问题描述】:
它们有不同的控制字符/序列,代表不同平台的新行。根据模板文字解释的规则,在任何平台 JavaScript 代码运行下,文字中的新行必须规范化为换行符 (\n)。至于spec,<CR><LF> and <CR> LineTerminatorSequences are normalized to <LF> for both TV and TRV.
所以它返回true:
`foo
boo` === `foo\nboo`
但是,当我们显式放置换行符的不同表示时,这个逻辑就不适用了:
`foo\nboo` === `foo\r\nboo` // false
`foo\nboo` === `foo\rboo` // false
为什么 JavaScript 区分这两种情况?它们有什么区别?
【问题讨论】:
-
因为不同的字符不一样?如果我们做
"ab" === "acb",你肯定会看到同样的事情。 -
因为\n和\r不一样????
-
等一下,如果你引用标准,为什么你在引用之后省略了下一句:“一个明确的 EscapeSequence 需要包含一个
或 "?序列。
标签: javascript template-literals