澳门新葡亰平台官网现如今最流行的JavaScript代码规范_基础知识_脚本之家

by admin on 2020年5月3日

对齐代码时,该用 Tab
,还是空格。这个话题,就像浏览器和操作系统之战,也是能让程序员争辩很久的。甚至还动粗,比如下面漫画。

每个程序员都有自己喜欢的编码风格以及编码习惯,那么,问题来了。

什么是最佳的JavaScript代码编程规范?这可能是一个众口难调的问题。那么,不妨换个问题,什么代码规范最流行?

澳门新葡亰平台官网 1

一个很常用也很简单的问题,让程序员分为两派。编程时,到时是使用Tab按键来进行首行缩进好呢还是敲空格按键好呢???少侠,别急,带老夫给你慢慢分析。

sideeffect.kr通过分析GitHub上托管的开源代码,得出了一些有趣的结果。一起来看看吧。

Uku Pattak 最近分析了 GitHub 上多种语言的热门项目(star
数量高的),伯乐在线摘编了其分析结果。

Tab 占用更少的空间

行末逗号对行首逗号行末引号:复制代码
代码如下:var foo = 1, bar = 2, baz = 3; var obj = { foo: 1, bar: 2, baz:
3 }; 行首引号:复制代码 代码如下:var foo
= 1 , bar = 2 , baz = 3; var obj = { foo: 1 , bar: 2 , baz: 3
};行末,92.345%;行首,7.655%。

C 语言

分析了 371 个热门项目,结果:

澳门新葡亰平台官网 2

  • 32.08% 用 Tab

  • 35.31% 用 4 个空格

  • 26.15% 用 2 个

  • 4.31% 用 3 个

  • 2.16% 用 8 个

使用 Tab 的文件或许和不使用 Tab 的在 gzip
压缩后并没有明显的区别。但是不使用 Tab
的话,就得多一道程序处理你的代码,以保证文件大小合理。你不得不依赖压缩工具。拿注释举例来说,注释很有用,即使无法压缩代码也要有注释。Tab
可以达到和空格同样的效果,所以不用 Tab 的话,平白无故就会膨胀代码。

空格和Tab这年头大家都爱用空格了。使用空格缩进可以保证不同的开发者、不同的编辑器设置下看到的结果是一样的。

C++

分析了 248 个热门项目,结果:

澳门新葡亰平台官网 3

  • 20.56% 用 Tab

  • 39.11% 用 4 个空格

  • 38.71% 用 2 个

  • 1.61% 用 3 个

Tab 可个性化

空格,81.1 %;Tab,18.9 %。

CSS

分析了 357 个热门项目,结果:

澳门新葡亰平台官网 4

  • 19.89% 用 Tab

  • 71.71% 用 2 个空格

  • 8.4% 用 4 个空格

每个编辑器都可以调整 Tab 字符的宽度。这通常被认为是 Tab
的缺陷,但是实际上,这正是 Tab 的优势所在。有了
Tab,别人就能以自己觉得方便的格式查看你的代码,而不是用你喜欢的格式。Tab
将代码表现从逻辑中分离出来,就像是 CSS 将页面表现从 HTML
中分离出来一样。Tab
使读者更方便,而不是让编写者掌控一切。用空格就像是在说:“我不管你读代码时方不方便,这是我的代码,你就得按照我的方式来”。

函数后是否添加空格无空格复制代码
代码如下:function foo() { return “bar”; } 有空格复制代码 代码如下:function foo () { return
“bar”; } 无空格,67.424 %;有空格,32.576 %。

Go

分析了 238 个项目,结果:

澳门新葡亰平台官网 5

  • 98.32% 用 Tab

  • 0.84% 用 2 个空格

  • 0.84% 用 4 个

Tab 更利于合作

参数与括号间是否有空格无空格复制代码
代码如下:function fn { //or if { 有空格复制代码 代码如下:function fn { // … } if {
// … } 无空格,94.31 %;有空格,5.69 %。

Groovy

分析了 110 个项目,结果:

澳门新葡亰平台官网 6

  • 8.18% 用 Tab

  • 17.27% 用 2 个空格

  • 74.55% 用 4 个

每个程序员都有自己不同的想法,在团队合作中这种个性更要重视。有的程序员喜欢缩进
2 个空格宽,有的喜欢缩进 4 个空格宽。使用
Tab,每个程序员可以用自己喜欢的缩进方式编写代码,编辑器会根据所设置的
Tab
宽度自动调整缩进,而不必手动调整或者机械地在pull之后改成自己的缩进风格,而在提交前又改回统一的风格。

对象字面量中冒号周围是否有空格冒号后有空格复制代码 代码如下:{ foo: 1, bar: 2, baz: 3 }
冒号后无空格复制代码 代码如下:{ foo:1,
bar:2, baz:3 } 冒号前后均有空格复制代码
代码如下:{ foo : 1, bar : 2, baz : 3 } 后空格,62.955 %;无空格,22.891
%;前后空格,14.154 %。

Haskell

分析了 308 个项目,结果:

澳门新葡亰平台官网 7

  • 1.62% 用 Tab

  • 61.69% 用 2 个空格

  • 36.69% 用 4 个

不需依赖特定工具

个人觉得,无空格太挤了,不利于快速分清key和value。前后空格的话,恐怕需要对齐冒号,看起来才美观,从统计数据来看,大部分程序员懒得对齐冒号(还是说,大部分程序员的IDE或编辑器不够智能?)

Java

分析了 293 个项目,结果:

澳门新葡亰平台官网 8

  • 11.6% 用 Tab

  • 23.21% 用 2 个空格

  • 65.19% 用 4 个

使用空格时,缩进实际上是 N
个字符而不是一个,只不过编辑器展现出来的看起来像是一个字符而已。而使用
Tab,你每次按下 Tab 键,编辑器会插入 N
个空格;每次按回退键或是在缩进处删除字符时,编辑器会自动删除 N
个字符。当你不能用编辑器,而被迫使用其它工具时(例如当在嵌入了像是
codemirror 等工具的 webapp 中写一小段代码时),你会被空格丑哭的。尤其是
codemirror 会将 Tab 转换为空格,别人看你的代码时也会被丑哭。

条件语句有空格复制代码 代码如下:if {
//… } while { //… } switch { //… } 无空格复制代码 代码如下:if { //… } while { //… }
switch { //… } 有空格,78.276 %;无空格,21.724 %。

JavaScript

分析了 317 个项目,结果:

澳门新葡亰平台官网 9

  • 13.25% 用 Tab

  • 59.94% 用 2 个空格

  • 26.81% 用 4 个

Tab 易于选择

单引号、双引号单引号,56.791 %;双引号,43.209 %。

PHP

分析了 408 个项目,结果:

澳门新葡亰平台官网 10

  • 28.68% 用 Tab

  • 6.12% 用 2 个空格

  • 65.2% 用 4 个

假设你要选中所有缩进,想把缩进加倍或是将它们换成空格的话,用 Tab
就很容易操作。因为这是正它的意义所在,Tab
就是为了这类情况发明的。而空格的意义就多了,所以你无法简单的查找、替换空格。这种并不是为了发挥某种工具的原本功能而使用它的行为,我们通常称之为
hack。使用空格来进行缩进就是一种 hack。

总结所以说,最流行的代码规范是:

Python

分析了 234 个项目,结果:

澳门新葡亰平台官网 11

  • 2.99% 用 Tab

  • 5.13% 用 2 个空格

  • 91.88% 用 4 个

使用 Tab 缩进的代码更易于复制粘贴

•行末逗号•空格缩进•函数名称后无空格•函数参数与括号间无空格•对象字面量的冒号后加空格,冒号前不加•条件语句关键字后加空格

Ruby

分析了 489 个项目,结果:

澳门新葡亰平台官网 12

  • 0% 用 Tab

  • 100% 用 2 个空格

  • 0% 用 4 个

Norbert Süle 在评论中
指出,复制粘贴用空格缩进的代码时,除非别人惯用的缩进宽度恰好和你的一样,否则你就得手动调整缩进。使用
Tab 就不会出现这种问题,因为 Tab 就是
Tab,它会和代码完美的融合在一起。每个人都使用 Tab
的话,世界都会更加美好。

流行的不一定是好的,但是从交流的角度来说,按照流行的风格编写代码,可以让你的代码在大多数人看起来更习惯。

Scala

分析了 220 个项目,结果:

澳门新葡亰平台官网 13

  • 0% 用 Tab

  • 98.64% 用 2 个空格

  • 1.36% 用 4 个

Web 中的 Tab 更宽怎么办!

Shell

分析了 288 个项目,结果:

澳门新葡亰平台官网 14

  • 21.88% 用 Tab

  • 48.26% 用 2 个空格

  • 28.82% 用 4 个

  • 0.35% 用 3 个

  • 0.69% 用 8 个

这是个严重的问题,即使是钟情 Tab 的优秀程序员在上传代码前也会将 Tab
转换成空格。但是,CSS3 的 tab-size 属性 解决了这个问题。目前
Opera、Firefox 支持此属性,Webkit
很快也会支持。这个属性可优雅降级:即使浏览器不支持,呈现出来的代码虽然没有那么美观,但是仍具有良好的可读性。

Swift

分析了 88 个项目,结果:

澳门新葡亰平台官网 15

  • 5.68% 用 Tab

  • 11.36% 用 2 个空格

  • 82.95% 用 4 个

空格一定不好吗?

国内的情况:

今天中午,我们在@程序员的那些事微博发了一个投票。截至目前为止,结果如下:

澳门新葡亰平台官网 16

空格是对齐的最佳选择,而不是缩进。比如下面这段代码:

最后有 2 个小问题:

    1. 对齐代码时,你是用 Tab,还是空格?
    1. 那些用 3 个空格的,是肿么回事?大家来猜猜。

转自:    

var x = 10,

y = 0;

你需要 4 个空格使变量对齐。如果使用 Tab 的话,只有在 Tab 宽度为 4
的时候,变量才会对齐,否则格式就会乱掉。但是如果这段代码是缩进的,仍然应该用
Tab 而非空格。

另一个例子是对齐具有不同厂商前缀的 CSS3 属性。缩进应该使用
Tab,但是对齐应该使用空格。示例如下:

div {

-webkit-transition: 1s;

-moz-transition: 1s;

-ms-transition: 1s;

-o-transition: 1s;

transition: 1s;

}

好吧,我承认,我一直是使用Tab按键来缩进的,因为比起敲空格,它会省略几次对键盘的敲打并且Tab缩进会很规范。今天的分享就到这里,以上干货拿好不谢,因为我叫雷锋!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图