在Javascript中,为什么在.join()中删除\b个字符?

在Javascript中,为什么在.join()中删除\b个字符?,javascript,arrays,Javascript,Arrays,在Javascript中,为什么该语句不等于'\b、\b' ['\b', '\b'].join() //=> "," 根据join上的MDN文档: 如果元素未定义或为null,则将其转换为空字符串 那么为什么\b被评估为未定义/空 此外,\b将从任何以其开头的字符串中删除,例如: ['\btest', '\btest2'].join() //=> "test,test2" 有些疯狂的事情正在发生 \b是一个特殊字符,表示退格 这就是它被转换为“空”字符串的原因 那么为什么\b被

在Javascript中,为什么该语句不等于
'\b、\b'

['\b', '\b'].join()
//=> ","
根据
join
上的MDN文档:

如果元素未定义或为null,则将其转换为空字符串

那么为什么
\b
被评估为未定义/空

此外,
\b
将从任何以其开头的字符串中删除,例如:

['\btest', '\btest2'].join()
//=> "test,test2"
有些疯狂的事情正在发生

\b
是一个特殊字符,表示退格

这就是它被转换为“空”字符串的原因

那么为什么\b被计算为未定义/null

按照

在确定序列时,出现以下情况:\ 首先用代码点替换顺序 由UnicodeScapeSequence表示,然后是 整个IdentifierName通过UTF16编码转换为代码单位 (10.1.1)每个代码点

还要阅读以了解哪些是转义字符,哪些不是

字符转义序列

单转义字符非转义字符

单转义字符

“”中的一个\b f n r t v

非替身角色

::SourceCharacter,但不是EscapeCharacter或LineTerminator之一

转义字符

单逃逸字符

小数位数xu

十六进制转义序列

x六位数字六位数字序列::u Hex4数字u{HexDigits}


这就是为什么
\b
作为特殊字符被删除,而
\a
仍然是“a”。

类型
“\b“
在您的控制台中,它将返回一个空的string@gurvinder372是的,但是为什么<代码>\a返回“a”,这也很奇怪。这个反斜杠角色在做什么?它是一个特殊的角色。请尝试使用双反斜杠b-
\\b
\b
定义在顶部。@ccnokes,请检查此答案以了解发生这种情况的原因。您引用了规范的错误部分。
b
不是“UnicodeScapeSeSequence”,它是以
u
为前缀的十六进制数。您正在寻找名为“SingleEscapeCharacter”的产品。@torazaburo更新了答案,包括什么是转义字符,什么不是。