为什么这个嵌套范围示例中的额外\符号?

时间:2015-12-17 09:44:24

标签: javascript

我正在学习javascript并遇到了这个伟大的啧啧:

http://eloquentjavascript.net/03_functions.html

标题下的第一个例子"嵌套范围"文本生成文字以绘制山峰:

我不明白为什么,在第11行有一个" \" 当它只生成一个" \"

请让你的解释适合傻瓜 - 我上了一堂关于提升的课程,并在我理解之前通过调试器多次遵循此代码! :)

谢谢!

2 个答案:

答案 0 :(得分:3)

反斜杠"逃避"很多语言中的字符。通过"逃避",我的意思是他们将他们从他们的特殊意义中剥离出来,留下他们一个朴素的性格。因此,当你想要一个简单的反斜杠时,你必须逃避它以限制它逃避其他东西。

答案 1 :(得分:0)

这是问题所在的代码块:

var mountain = function(size) {
    result += "/";
    for (var count = 0; count < size; count++)
      result += "'";
    result += "\\";
  };

// mountain(4); outputs -> /''''\

在JavaScript中,符号\用于转义字符串中的特殊字符(如换行符\n)。

因此,当只创建一个\时,您必须转义转义 out

因此result += "\\";中的加倍。