我可以用换行符和制表符格式化我的 JavaScript/JQuery 代码吗?

Posted

技术标签:

【中文标题】我可以用换行符和制表符格式化我的 JavaScript/JQuery 代码吗?【英文标题】:Can I format my JavaScript/JQuery code with linebreaks and tabs? 【发布时间】:2012-03-13 17:20:23 【问题描述】:

作为一名学习 javascript 的 c# 编码器,我发现这更具可读性:

$(this)
  .first()
  .prepend("<h3>Title</h3>")
  .end()
  .removeClass("hidden");

比这个:

$(this).first().prepend("<h3>Title</h3>").end().removeClass("hidden");

但是 JSLint 抱怨第一个。但我不明白为什么。这会给我带来任何麻烦吗?

更新: 您可以在 jslint 页面底部设置缩进值,从而使您的代码“有效”。 JsLint 有一个分支http://www.jshint.com/,它也接受标签。

【问题讨论】:

why 是前一个元素和点之间的空格 附带说明,您为什么使用$(this).first()?如果this 是一个元素,那么$(this) 无论如何都只包含一个元素。 我通常把我的代码写成上面的例子,这样更容易阅读,我从来没有遇到过任何问题:) 看看答案我可能错了,但是javascript的自动分号插入不会在$(this)的末尾插入一个分号,从而使其余代码成为语法错误吗?跨度> 没有语法错误。问题就像上面所说的 itentifier.nextIdentifier 【参考方案1】:

来自 JSLint 的警告只是个人喜好问题。写它的人发现以这种方式安排事情更有意义:

$(this).
  first().
  prepend("<h3>Title</h3>").
  end().
  removeClass("hidden");

我发现你的方法更清楚,因为点告诉我它后面的任何内容都属于上面的行。

你的写作方式是安全的,但我真的很想看到有人(jslint 开发人员)告诉我们如何禁用该消息。

【讨论】:

在jslint页面底部至少可以设置允许缩进多少个空格。 是的,我阅读了其他答案。很高兴知道,但我使用标签。我设法在 jslint 的源代码中找到了这个特定的错误,但无法禁用它。也许我应该对此提出功能请求,因为我如何缩进我的行真的不关他们的事。毕竟,它不是蟒蛇!我错了吗? 此外,我使用二进制 jslint 并且错误出现在我的文本编辑器中。 Checkout jshint.com 它是 JSLint 的一个分支,它不介意我的标签。【参考方案2】:

一个好的编码习惯是让你和其他人都能阅读你的代码,这就是一个例子

$(this).first()
.prepend("<h3>Title</h3>")
.end()
.removeClass("hidden");

if(something)

   // do something

else

   //do something else

您应该始终使用缩进,这是一种很好的编码习惯。

【讨论】:

【参考方案3】:

jsLint 上该代码的问题是由于标识:如果您将其缩进 4 个空格,则没有错误

(如果默认值不是您想要的,请向下滚动到选项并更改标识设置)

【讨论】:

查看 jslint 页面的底部。 :)【参考方案4】:

如果你像这样格式化你的代码是完全没问题的

$(this).
    first().
    prepend("<h3>Title</h3>").
    end().
    removeClass("hidden");

【讨论】:

以上是关于我可以用换行符和制表符格式化我的 JavaScript/JQuery 代码吗?的主要内容,如果未能解决你的问题,请参考以下文章

文件处理-Haskell

正则表达式 Python - 用单个空格替换换行符、制表符、空格的任意组合[重复]

如何从句子中删除多余的空格、制表符和换行符,并仅用一个空格替换它们? [复制]

如何制作新的行或标签 XML(eclipse / android)?

01markdown语法

Java如何去除字串中的空格、回车、换行符、制表符