字符串JavaScript中的反斜杠不';不算长,为什么?

字符串JavaScript中的反斜杠不';不算长,为什么?,javascript,string,Javascript,String,字符串JavaScript中的反斜杠不计算长度,当它被替换时,它与数字一起消失。我试着用谷歌搜索它,不太确定该怎么称呼它。这段代码是怎么回事 var b = "world\0"; alert(b.length) // 6 console.log( "world\0" ); // world (we see here only 5 characters!) 为什么会这样 字符串有六个字符的原因是它有六个字符:w,o,r,l,d和\u00

字符串JavaScript中的反斜杠不计算长度,当它被替换时,它与数字一起消失。我试着用谷歌搜索它,不太确定该怎么称呼它。这段代码是怎么回事

var b = "world\0";
alert(b.length)                        // 6
console.log( "world\0" );       // world  (we see here only 5 characters!)

为什么会这样

字符串有六个字符的原因是它有六个字符:
w
o
r
l
d
\u0000
。转义序列
\0
创建字符代码为0的字符。在大多数控制台上,您会看到该字符是一个小方框或带有问号的菱形,但有些可能根本不会显示它(例如NodeJS的控制台)。

这里
\
是一个转义字符,因此它在字符串中不算作长度

所以
“world\0”
有6个字符。i、 e.
w、o、r、l、d、\0


但是您在这里看不到
\0
,因为这是一个,但它在某个地方。

Javascript中的特殊字符

由于字符串必须写在引号内,JavaScript会误解此字符串:

var x = "We are the so-called "Vikings" from the north.";
字符串将被切碎为“我们是所谓的”

避免此问题的解决方案是使用反斜杠转义字符

反斜杠(\)转义字符将特殊字符转换为字符串:

  • \'
    ->输出
    '
  • \”
    ->输出
  • \\
    ->输出
    \
样本:

var x = "We are the so-called \"Vikings\" from the north.";
这就是为什么单个反斜杠字符不起作用的原因

资料来源:

因为
\
是一个问题,所以这个问题不清楚。空字符不应该消失,你怎么什么也看不见?它通常显示为一个矩形:你的标题和问题不匹配。伙计们,我们不需要这么多相同的答案。很抱歉,不方便,我不能把所有的问题都放在一个问题中,因为在提问之前要考虑很多细节,我不知道该怎么称呼它。这就是为什么我当时使用了我所知道的:“字符串和反斜杠的行为非常奇怪”对我来说听起来更糟糕。事实上,我在Node.js控制台上查看了一下。。。谢谢你的澄清!非常感谢。所以,\0-是空字符的“转义序列”。