现如今最流行的JavaScript代码规范


Posted in Javascript onMarch 08, 2014

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

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

现如今最流行的JavaScript代码规范

行末逗号对行首逗号
行末引号:

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%。(基于1,100,251次提交统计。)

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

空格,81.1 %;Tab,18.9 %。(基于2,019,550次提交统计。)

函数后是否添加空格
无空格

function foo() { 
  return "bar"; 
}

有空格
function foo () { 
  return "bar"; 
}

无空格,67.424 %;有空格,32.576 %。(基于1,212,488次提交统计。)

参数与括号间是否有空格
无空格

function fn(arg1, arg2) { 
//or 
if (true) {

有空格
function fn( arg1, arg2 ) { 
  // ... 
} if ( true ) { 
  // ... 
}

无空格,94.31 %;有空格,5.69 %。(基于1,514,971次提交统计。)

对象字面量中冒号周围是否有空格
冒号后有空格

{ 
  foo: 1, 
  bar: 2, 
  baz: 3 
}

冒号后无空格
{ 
  foo:1, 
  bar:2, 
  baz:3 
}

冒号前后均有空格
{ 
  foo : 1, 
  bar : 2, 
  baz : 3 
}

后空格,62.955 %;无空格,22.891 %;前后空格,14.154 %。(基于1,300,035次提交统计。)

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

条件语句
有空格

if (true) { 
  //... 
} while (true) { 
  //... 
} 
switch (v) { 
  //... 
}

无空格
if(true) { 
  //... 
} while(true) { 
  //... 
} 
switch(v) { 
  //... 
}

有空格,78.276 %;无空格,21.724 %。(基于1,163,316次提交。)

单引号、双引号
单引号,56.791 %;双引号,43.209 %。(基于1,705,910次提交。)

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

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

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

Javascript 相关文章推荐
YUI 读码日记之 YAHOO.lang.is*
Mar 22 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
Aug 20 Javascript
jquery实现一个简单的表单验证实例
Mar 30 Javascript
JavaScript数组方法大全(推荐)
Jul 05 Javascript
jquery validate表单验证插件
Sep 06 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
Jan 11 Javascript
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 Javascript
Webpack 之 babel-loader文件预处理器详解
Mar 23 Javascript
angularjs手动识别字符串中的换行符方法
Oct 02 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
Oct 16 Javascript
vue随机验证码组件的封装实现
Feb 19 Javascript
微信小程序开发打开另一个小程序的实现方法
May 17 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
Mar 08 #Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 #Javascript
JS实现鼠标单击与双击事件共存
Mar 08 #Javascript
js触发onchange事件的方法说明
Mar 08 #Javascript
关于onchange事件在IE和FF下的表现及解决方法
Mar 08 #Javascript
javascript中的事件代理初探
Mar 08 #Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
Mar 08 #Javascript
You might like
谈一谈收音机的高放电路
2021/03/02 无线电
php获取发送给用户的header信息的方法
2015/03/16 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
PHP封装返回Ajax字符串和JSON数组的方法
2017/02/17 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
小程序实现多列选择器
2019/02/15 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
python简单线程和协程学习心得(分享)
2017/06/14 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
如何将json数据转换为python数据
2020/09/04 Python
Python-split()函数实例用法讲解
2020/12/18 Python
幼儿园教师培训制度
2014/01/16 职场文书
小学生期末评语大全
2014/04/21 职场文书
导师就业推荐信范文
2014/05/22 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
作风建设年度心得体会
2014/10/29 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
检讨书模板
2015/01/29 职场文书
法律讲堂观后感
2015/06/11 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android