Javascript中允许点(方法调用)之前的空格?
问题描述:
我想用下面的语法在Javascript:Javascript中允许点(方法调用)之前的空格?
var bar = foo.replace(/really long regex/, something)
.replace(/another really long regex/, something)
.replace(/yet another really long regex/, something);
,因为它的(有点),比上一行这样更具可读性。
这是允许的吗?它在Firefox中可以正常工作,但是我无法在任何地方找到任何对此语法的引用,而且我不想稍后再发现有一些模糊浏览器无法正常工作。
答
是的,Javascript忽略空白。
尽管如果您要忽略空白,您需要确保使用分号来结束表达式。分号不是必需的,但如果它们未被使用,javascript会使用回车来分隔命令。如果你不期待它会导致不一致的行为。
我已经在我的javascript代码中做过很多次了,因为当我编写漂亮的代码时,我不想让它超过80个字符。
看看在emcascript标准https://docs.google.com/viewer?url=http%3A%2F%2Fwww.ecma-international.org%2Fpublications%2Ffiles%2FECMA-ST%2FECMA-262.pdf
线端(也就是你关心什么)都是PDF格式的第25页上的寻址(15页打印在纸张上)。所有第7部分都是关于格式化的,你可能会找到它为什么在那里工作的定义(是的,我很懒,不想读整节:))。
希望有帮助!
答
是的,这是我无法找到任何文件,但它是有效的。 在你的情况下,你可以循环而不是正则表达式
答
你绝对可以做到这一点,但我会小心。引用维基百科条目 - “JavaScript源代码中的空白可以直接影响语义”。请参阅JavaScript Syntax -Whitespace and Semicolons。
谢谢,这是我的想法,虽然我确实担心分号插入可能会毁了这一点。我会等待一段时间才能获得更权威的答案,否则我会批准这个答案。 – mscha 2011-02-10 18:40:28
@mscha实际上,建议您在结束表达式时加上分号。这可以让你稍后使用代码最小化器而不会让JavaScript解释器感到困惑。您的代码更易于阅读(用于调试目的),但代码运行速度会更快,因为JavaScript解释器需要的时间更少。 – ehudokai 2011-02-10 18:45:48