【问题标题】:CoffeeScript - Issue with spaceCoffeeScript - 空间问题
【发布时间】:2013-05-01 07:20:20
【问题描述】:

跟随 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);
}

只是想知道它是我应该始终关心的错误还是标准语法。

【问题讨论】:

    标签: javascript compilation coffeescript


    【解决方案1】:

    是的,如果你做第二种形式,coffee 会猜到你的意思

    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
    

    所以你应该小心不那么难做的咖啡的聪明。(-:

    【讨论】:

      【解决方案2】:

      我会完全取消括号'()'并这样做:

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

      我也尝试使用字符串插值, 即“#{controllersFolderPath}#{eachControllerName}”

      习惯后阅读会更容易。

      您也可以尝试在 'indexOf' 部分之后添加额外的空格,您会看到咖啡编译器会忽略它并且不会中断函数调用。

      【讨论】:

      • 完全去掉括号没有帮助,并且导致与带括号的空格相同的代码,你试过编译器吗?
      • 更新为反转表达式,本质上是一样的,但去掉了括号。
      猜你喜欢
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 2015-01-30
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      相关资源
      最近更新 更多