我可以用换行符和制表符格式化我的 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来自 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 代码吗?的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式 Python - 用单个空格替换换行符、制表符、空格的任意组合[重复]
如何从句子中删除多余的空格、制表符和换行符,并仅用一个空格替换它们? [复制]