2011-02-10 54 views
1

我想用下面的語法在Javascript:Javascript中允許點(方法調用)之前的空格?

var bar = foo.replace(/really long regex/, something) 
      .replace(/another really long regex/, something) 
      .replace(/yet another really long regex/, something); 

,因爲它的(有點),比上一行這樣更具可讀性。

這是允許的嗎?它在Firefox中可以正常工作,但是我無法在任何地方找到任何對此語法的引用,而且我不想稍後再發現有一些模糊瀏覽器無法正常工作。

回答

4

是的,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部分都是關於格式化的,你可能會找到它爲什麼在那裏工作的定義(是的,我很懶,不想讀整節:))。

希望有幫助!

+0

謝謝,這是我的想法,雖然我確實擔心分號插入可能會毀了這一點。我會等待一段時間才能獲得更權威的答案,否則我會批准這個答案。 – mscha 2011-02-10 18:40:28

+0

@mscha實際上,建議您在結束表達式時加上分號。這可以讓你稍後使用代碼最小化器而不會讓JavaScript解釋器感到困惑。您的代碼更易於閱讀(用於調試目的),但代碼運行速度會更快,因爲JavaScript解釋器需要的時間更少。 – ehudokai 2011-02-10 18:45:48

0

是的,這是我無法找到任何文件,但它是有效的。 在你的情況下,你可以循環而不是正則表達式