Marc Grabanski 提出了一个有趣的想法 在 Twitter 上 昨天。
JSON 对象和多变量定义中的逗号是在行前还是行后?
以下是对象字面量的示例
// commas before
var vampyre = {
teeth: 'sharp'
, blood: 'stale'
, age: 320
}
// commas after
var vampyre = {
teeth: 'sharp',
blood: 'stale',
age: 320
}
您可能在大多数情况下看到结构后的逗号。 它“看起来不错”。 但是,逗号放在前面使这些代码片段更易于使用。
假设您要注释掉一行。 使用**逗号在前**技术,您可以像注释掉 JavaScript 中的任何其他代码行一样注释掉该行,方法是在其前面加上“//”。 使用**逗号在后**结构,您需要更加小心。 如果要注释掉最后一个声明(年龄),最后一个声明将以逗号结尾并抛出错误。 因此,您要么手动删除该逗号,要么也将其注释掉。
从技术上讲,这是一个平局,因为从声明块的中间注释掉与两种方式相同。 逗号放在前面使注释掉最后一个声明更容易,而逗号放在后面使注释掉第一个声明更容易。
在使用一个语句声明多个变量时也是如此
// commas before
var foo = 'bar'
, boo = 'baz'
, doo = 'dad'
;
// commas after
var foo = 'bar',
boo = 'baz',
doo = 'dad';
请注意分号也是第一个(通过 Scott González)。 这有助于保持注释的简便性(这是重点),因为您不会在注释掉最后一行时注释掉分号。
这是一个非常小的事情,它看起来很奇怪,但我喜欢逗号放在前面的想法。 我认为这归结于这样一个事实,即在添加新声明时,我喜欢在底部进行操作,并且以一种在测试时更快更轻松地注释掉的方式进行操作。
我个人更喜欢可读性,所以逗号放在后面更胜一筹。
我同意。 我更喜欢可读性强的代码,但我明白为什么逗号放在前面实际上更好。
3 种方法,“逗号放在前面”在可测试性方面更胜一筹。
不错的提示。 但 SQL 查询中的“AND”也是如此。 将 AND 运算符放在下一句的开头确实更容易。
即
WHERE
clause_1 = 1
AND clause_2 = 2
AND clause_3 = 3
如果要注释掉一个,那就很简单了
WHERE
clause_1 = 1
//AND clause_2 = 2
AND clause_3 = 3
我已经在使用这个 SQL 技巧。 我只是从没想过用逗号做同样的事情。 很好的观点。
出于某种原因,我同意这是格式化 SQL 查询的更好方法,我自己也用它来处理 SQL。 但从美学上讲,逗号放在前面的语法对于对象列表来说看起来很糟糕。 我所做的是对于列表中事物位于中间的情况使用 implode(这仅适用于 SQL,不适用于对象或数组声明……)
PHP
$where = array();
$where[] = "clause_1=1";
$where[] = "clause_2=2";
$where[] = "clause_3=3";
$query = "SELECT ... WHERE " . implode(" AND ", $where);
这使得注释掉一行变得轻而易举。 但我离题了。 这是 CSS 技巧,不是 PHP 技巧。
我真的很喜欢这里使用 implode 的方式,Kent! 我从未想过用这种方式使用它。 谢谢你的评论! 哈哈
没机会评论你之前的帖子..只是想谢谢你为 css-tricks.com 上的视频部分付出了很多努力。 你真是太棒了!
我和 Darren 一样。 虽然这对注释很有用,但它在可读性方面失败了,而可读性对我来说更重要。
各有所好,但这看起来也很繁琐。
哇,之前从未想过,但这是一个好主意。 当我需要在测试期间注释掉内容时,真的很不错。 我今天就要切换过去。
我已经这么做了一年了。 一开始看起来很奇怪,但我绝对可以推荐它。 特别是如果你有一个支持块编辑部分的编辑器。
我喜欢注释的简便性,而且我之前确实被它困扰过。
但是,我认为代码可读性更重要。 当代码完成时,它可能不应该包含注释掉的变量,因此应该尽可能地可读。
或者像 Python 一样做... 每行都有逗号
(“something”,
“something”, )
那行不通。
HESDOINITRONG!
不是说你可以,显然每种语言都不一样,但如果能这样就好了!
“如果要注释掉最后一个声明(年龄),最后一个声明将以逗号结尾并抛出错误。”
值得注意的是,这仅在 IE6 和 IE7 中是错误。 因此,根据浏览器支持或您是否只在 FF/Chrome 中进行测试,最后一个逗号可以保留。
而且,谁在乎 IE6 和 IE7? 😉
虽然我喜欢这个想法,但我对现实世界的执行有疑问。 如果要使用 Tab 键缩进代码,那么它实际上会变成这样
我想,如果你要手动空格缩进,那么你可以得到你在示例中使用的外观,但是,你通过不用使用多行注释而节省的所有时间都会消失。
更不用说,在大多数不错的代码编辑软件中,注释掉代码(无论是单行还是多行)都与突出显示代码块并按下键盘快捷键一样简单。
我通常使用逗号放在后面,但逗号放在前面很有趣,我想下次我会尝试一下。 谢谢 Chris!
间距没有转移,但我认为你明白了。
这让我想知道 CSS 分号是否可以以同样的方式对待。
我非常喜欢逗号放在前面的语法!
但是,我在 *var* 词(或左括号)后多加一行,分号(或右括号)位于行的开头。
我尽量将每个指令的开头和结尾放在单独的一行(JS、TSQL、PowerScript 也是如此)。
我花了一些时间才欣赏这种语法,但我现在真的非常喜欢它。
逗号放在前面不仅方便注释掉,而且通过复制/粘贴最后一行,也更容易添加新行。
它真的对注释有帮助吗?
如果我注释掉“teeth: ‘sharp'”... 我们是否只是将问题从“注释掉最后一项时出现问题”转移到了“注释掉第一项时出现问题”。
正确。
引用
在注释方面,两者不是一样吗?
如果注释掉第一行,代码也会中断吗?
我之前一直使用这种方法,但幸运的是我的同事劝阻了我。仅仅因为这种格式会导致 jslint 错误,我就放弃了它。
首先,我非常感谢你写了这篇文章,因为这对任何为网络编写代码的人来说,都是一个非常亲切且重要的风格问题。
其次,对于那些 PHP 程序员来说,他们做对了,允许在数组声明中使用尾部斜杠,这是一个很棒的选择,让那些利用它的人的生活更轻松
$a = array(
"oranges",
"apples",
"lemons",
);
我倾向于同意,这只是将问题从列表开头转移到了列表结尾。我倾向于更喜欢逗号放在后面,因为它看起来更好。
另外,使用 jslint 并测试你的 JavaScript 代码,其他缺点就变得不那么重要了。
仅供参考。
由于逗号放在前面没有带来任何实际优势,我认为应该优先考虑约定,即使是一个比较宽松的约定,而不是个人偏好。这不是关于你*喜欢*什么,而是关于主要为了方便其他人阅读。
有趣的想法,但我选择可读性。好处似乎并没有超过坏处,尤其是在你仍然存在相同的问题的情况下,可能只是频率稍微低一点而已。不过这是一个有趣的想法!
我一直坚持可读性。我发现,在团队环境中,结构糟糕的代码更糟糕,因为要弄清楚你想做什么需要更多时间,而不是将某些东西注释掉。
inimino 的这篇文章很好地论证了逗号优先:http://inimino.org/~inimino/blog/javascript_whitespace
我这些天一直使用逗号优先,因为在使用 Explorer 时,如果你留了一个多余的逗号,它就会出现问题 -> 在编写大量 Jquery 代码时很容易出现这种情况。我还发现,在编写复杂的 mysql 查询时,逗号优先会导致更少的错误。
我讨厌人们使用逗号优先技巧。看起来很奇怪。真的很难检查一下你是否漏掉了逗号吗?
我不喜欢逗号优先技巧。似乎唯一的好处是更容易注释掉某些东西,但代价是失去了可读性。正如 Python 之禅所说,“可读性很重要”。此外,在许多其他语言中,尾部逗号不会造成任何危害。如果你同时使用其中一种语言,你就会发现很难只在 Javascript 中切换到逗号优先风格。
可读性始终是首要的(仅供参考)。所以,我选择“逗号放在后面”。
关于 SQL 查询,我写过“AND 放在前面”和“AND 放在后面”的语句,但更多时候我使用“AND 放在前面”。
原因是,查询中的“AND”/“OR”词语比数组或其他列表中的逗号更有意义。
逗号只是分隔符,将它们放在前面或后面的原因,只是将_注释/添加新行放在第一行之前或最后一行之后的习惯问题。
相比之下:SQL 词语在逻辑中起着重要作用,它们应该可见。这就是我认为最好将它们放在字符串开头的理由。
嗯?帮助注释的不是逗号的位置,而是使用换行符。
关于逗号优先的精彩文章,之前从未想过要使用它,但有些观点很棒,我真的很喜欢可读性。LT
酷文章,哥们!我喜欢读你的文章。
我会选择放在后面,毫无疑问,它看起来就是正确的!:)
有意思的观点。
我写 SQL 命令的时候总是这样做,我最近好像经常在写。这使得一切都更加易读。
我之前也经常在 SQL 语法中这样做。这对 SQL 语法很有效。但现在我更喜欢逗号放在后面,仅仅因为它看起来对大多数代码来说更好。我想这是一种偏好问题,可能取决于你多久需要对每一行打开/关闭注释。
对我来说,两者都好。我会根据代码需求使用它们。就个人而言,将逗号放在末尾更有意义,请记住,你不是唯一一个在应用程序上工作的人,可能还有其他人和你一起工作……:)
好吧,我不得不说逗号优先是 JavaScript 中的莫霍克发型:前面是逗号,后面是派对!
我喜欢逗号优先的理论,但我还没有付诸实践,可能永远也不会。存在“它看起来很奇怪”的因素,以及之后在代码上工作的开发人员的可读性问题。好处是它可以帮助我解决尾部逗号问题。
绝对必须是逗号放在后面。可读性对我来说比更容易注释重要得多。最好的代码应该不需要注释;)
Ruby 甚至允许你在语句末尾使用逗号!
放在后面..但我也可以理解放在前面是如何运作的。感谢你的精彩文章!
我可以像这样在一行中输入吗
var vampyre = {teeth: ‘sharp’, blood: ‘stale’ , age: 320}
我来晚了一点,但我必须说我对逗号优先的方法很感兴趣。注释的优势无关紧要,但我知道逗号优先会帮助我在过去节省很多时间来查找我在 JavaScript 中编写的语法错误。前面是连续的逗号?很好。不是吗?需要修复一下。
我必须说“可读性 FTW/看起来很奇怪”的评论是胡说八道。这仅仅是习惯看到什么的问题。用它写代码几个星期,你就会习惯它。此外,JSLint 是可配置的。
从未想过,我一直使用逗号放在后面,但似乎逗号优先更容易阅读,而且在逗号放在后面的情况下,很多时候我们都会错过看到它。
感谢逗号优先