最流行的JavaScript代码规范
什么是最佳的JavaScript代码编程规范?这可能是一个众口难调的问题。那么,不妨换个问题,什么代码规范最流行?
sideeffect.kr通过分析GitHub上托管的开源代码,得出了一些有趣的结果。一起来看看吧。

行末逗号对行首逗号
行末引号:
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代码规范的更多相关文章
- JavaScript 代码规范
所有的 JavaScript 项目适用同一种规范. JavaScript 代码规范 代码规范通常包括以下几个方面: 变量和函数的命名规则 空格,缩进,注释的使用规则. 其他常用规范-- 规范的代码可以 ...
- 5 JSON&与JavaScript转换&JavaScript:void(0)&JavaScript代码规范
JSON:JavaScript Object Notation JS对象简谱 一种轻量级的数据交换格式,用于存储和传输数据的格式,通常用于服务端向网页传递数据 是独立的语言,易于理解 JSON语法 ...
- js基石之---易读、易复用、易重构的 JavaScript 代码规范
易读.易复用.易重构的 JavaScript 代码规范 1.变量命名规范有意义 Bad: const yyyymmdstr = moment().format("YYYY/MM/DD&quo ...
- JavaScript代码规范和性能整理
性能 Js在性能方面有多要注意的地方: 避免全局查找 Js性能优化最重要的就是注意全局查找,因为作用域的查找是先找局部作用域在没有找到之后在去上一级作用域查找直到全局作用域,所以全局作用域查找的性能消 ...
- javascript代码规范 [转]
原文:http://www.css88.com/archives/5366 全局命名空间污染与 IIFE 总是将代码包裹成一个 IIFE(Immediately-Invoked Function Ex ...
- 最流行的PHP 代码规范
“PHP是最好的编程语言” ;-) 那么PHPer习惯使用什么样的代码规范呢?sideeffect.kr通过分析GitHub上托管的开源代码,得出了一些有趣的结果,让我们一起来看看吧. 缩进 空格(7 ...
- Airbnb JavaScript代码规范(完整)
类型Types 基本数据类型 string number boolean null undefined symbol const foo = 1; let bar = foo; bar = 9; co ...
- JavaScript代码规范
变量名:驼峰命名法(首单词小写,后面每个单词首字母大写) firstName = "John"; lastName = "Doe"; price = 19.90 ...
- Airbnb Javascript 代码规范重要点总结es6
中文原地址 1.对所有的引用使用 const 而非 var.这能确保你无法对引用重复赋值. 当需要变动引用时,使用let. const和let都是块级作用域. 2.创建对象的方式: const ite ...
随机推荐
- ballerina 学习十二 变量
ballerina 有两种方式进行变量的定义,类型加上名称以及初始值.,使用var 关键字 简单例子 代码 import ballerina/io; // 全局public 变量,使用类型定义 pub ...
- drone 学习五 集成gitlab 配置以及简单测试
备注: 使用docker-compose 进行安装 同时集成gitlab,预备环境 docker docker-compose gitlab 1. docker-compose version: ...
- 你真的了解分层架构吗?——写给被PetShop"毒害"的朋友们
一叶障目 .NET平台上的分层架构(很多朋友称其为“三层架构”),似乎是一个长盛不衰的话题.经常看到许多朋友对其进行分析.探讨.辩论甚至是抨击.笔者在仔细阅读了大量这方面文章后,认为许多朋友在分层架构 ...
- [LeetCode系列]有序链表转换为平衡BST的递归解法
给定有序链表(元素由小到大), 试问如何将其转换为一个平衡BST? 平衡BST: 任意节点的左右子树的深度差值不大于1. 主要思想是用递归. Trick是使用快慢指针来获取中间节点. 获得中间节点后, ...
- socket初步
简单demo:https://blog.csdn.net/ns_code/article/details/14105457
- bzoj1087互不侵犯King(状压)
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1087 简单的状压dp.但是wa了好几发.注意long long. 注意0和0的连边.而且不能 ...
- 骰子点数概率__dp
骰子点数概率 时间限制:1 秒 内存限制:32 兆 题目描述: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S.输入n,打印出S的所有可能的值出现的概率. 输入: 输入包括一个整数N(1<= ...
- 免费数据集下载网站【dataset】
https://github.com/awesomedata/awesome-public-datasets
- php分页类 可直接调用
<?php /** * 分页类 * @author xyy * 调用分页实例 $subPages=new SubPages(数据总条数);//实例化分页类 * //$subPages->s ...
- 历届试题 Excel地址
问题描述 Excel单元格的地址表示很有趣,它使用字母来表示列号. 比如, A表示第1列, B表示第2列, Z表示第26列, AA表示第27列, AB表示第28列, BA表示第53列, .... 当然 ...