2013-05-01 66 views
1

繼CoffeeScript的的CoffeeScript - 問題與空間

if eachController.indexOf("Controller.js") isnt -1 
    controller = require(controllersFolderPath + eachControllerName) 
    controller.register server 

得到遵守這個JavaScript代碼

if (eachController.indexOf("Controller.js") !== -1) { 
    controller = require(controllersFolderPath + eachControllerName); 
    controller.register(server); 
} 

但是,當後的indexOf增加了額外的空間,則== -1變成的indexOf的一部分!

if eachController.indexOf ("Controller.js") isnt -1 
    controller = require(controllersFolderPath + eachControllerName) 
    controller.register server 

進入

if (eachController.indexOf("Controller.js" !== -1)) { 
    controller = require(controllersFolderPath + eachControllerName); 
    controller.register(server); 
} 

只是想知道,如果它的bug或標準語法,我應該始終關心。

回答

1

是的,如果你做的第二種形式咖啡會想你的意思

if eachController.indexOf (("Controller.js") isnt -1) 
    controller = require(controllersFolderPath + eachControllerName) 
    controller.register server 

if eachController.indexOf ("Controller.js") isnt -1 
    controller = require(controllersFolderPath + eachControllerName) 
    controller.register server 

所以你應該小心的咖啡機智是不是很難做。( - :

0

我將完全廢除括號 '()' 乾脆這樣做:

if -1 isnt eachController.indexOf "Controller.js" 
    controller = require "#{controllersFolderPath}#{eachControllerName}" 
    controller.register server 

我也嘗試使用字符串插值, 即「#{controllersFolderPath}#{} eachControllerName」

獲取更易於閱讀,一旦你習慣了它。

您也可以嘗試在'indexOf'部分之後添加額外的空格,您會看到咖啡編譯器忽略它並且不會中斷函數調用。

+0

徹底消除括號不會幫助和導致與括號中的空格相同的代碼,你有編譯器嘗試過嗎? – 2013-05-01 12:41:10

+0

用於字符串插值的+1 – biofractal 2013-05-01 13:35:20

+1

已更新爲反轉表達式,基本上是同樣的事情,但省略括號。 – TheRocketSurgeon 2013-05-04 12:33:11