JavaScript 忽略多余的空格?

JavaScript ignores extra spaces?

在这个 JavaScript quiz at WsCube Tech 中有一个问题 JavaScript 是否忽略了额外的空格。正确答案是“错误”。

JavaScriptwhite-space不是独立的吗?我在许多博客中都读到过。那为什么我的回答是错误的呢?

一方面,您可以换行终止表达式。

var x = 1  // no semicolon
console.info(x)

另请参阅 this(returns 未定义):

return
   12

严重不相信那个网站…

这是我能给出的简短而充分的答案,但我还想说两件事:

首先,JavaScript不会忽略字符串中的spaces:

var str = "Hello                World";

这个字符串有 16 个 space,它们不会就这样被忽略。然而,in-between一些运算符、关键字和标记,JavaScript确实忽略了spaces:

var   test  = [ 0 , 1  ,     3    ]       .  slice  (      2  )      ;

这一行被解析为

var test=[0,1,3].slice(2);

不过,vartest 之间的 space 不会被忽略。并非所有 space 都是平等的。此测验问题无法以其当前形式回答 — 好吧,或者两种形式...

其次,该测验有很多不一致之处、虚假信息、过时信息并助长不良做法。我刚刚给他们发了一大堆测验错误的清单……

坚持使用像 Mozilla Developer Network 这样更“受信任”的网站会更安全。