在Javascript中,为什么在.join()中删除\b个字符?
在Javascript中,为什么该语句不等于在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被
'\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更新了答案,包括什么是转义字符,什么不是。