现如今最流行的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次提交。)

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

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

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

时间: 2024-09-22 23:33:40

现如今最流行的JavaScript代码规范_基础知识的相关文章

浅谈JavaScript编程语言的编码规范_基础知识

JavaScript 编程语言作为最流行的客户端脚本语言,早已被众多 Web 开发人员所熟悉.随着 Web2.0 时代的到来和 Ajax 技术的广泛应用,JavaScript 也逐渐吸引着更多的视线.工作中要求越多的是对 JavaScript 语言的深入学习,灵活运用,和对编码质量的保证. 对于熟悉 C/C++ 或 Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散.很容易学习,并运用到自己的代码中.也正因为这样,JavaScript 的编码规范也

图文详解Heap Sort堆排序算法及JavaScript的代码实现_基础知识

1. 不得不说说二叉树要了解堆首先得了解一下二叉树,在计算机科学中,二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree).二叉树常被用于实现二叉查找树和二叉堆. 二叉树的每个结点至多只有二棵子树(不存在度大于 2 的结点),二叉树的子树有左右之分,次序不能颠倒.二叉树的第 i 层至多有 2i - 1 个结点:深度为 k 的二叉树至多有 2k - 1 个结点:对任何一棵二叉树 T,如果其

深入理解JavaScript定时机制_基础知识

本文介绍了JavaScript定时机制,要理解JavaScript的定时机制,就要知道JavaScript的运行机制. 首先声明,JavaScript是单线程运行(JavaScript引擎线程)事件驱动. 一.浏览器中有多个线程 一款浏览器中包含的最基本的线程: 1.JavaScript引擎线程. 2.定时器线程,setInterval和setTimeout会触发这个线程. 3.浏览器事件触发线程,这个线程会触发onclick.onmousemove和其它浏览器事件. 4.界面渲染线程,负责渲染

介绍一个简单的JavaScript类框架_基础知识

 在写work-in-progress JavaScript book一书时,对于javascript继承体系,我花费了相当的时间,并在该过程中研究了各种不同的模拟经典类继承的方案.这些技术方案中,我最为推崇的是base2与Prototype的实现. 从这些方案中,应该能提炼出一个具有其思想内涵的框架,该框架须具有简单.可重用.易于理解并无依赖等特点,其中简单性与可用性是重点.以下是使用示例:   var Person = Class. extend ( { init: function (is

浅谈Javascript 执行顺序_基础知识

Javascript是执行顺序是至上而下的,除非你特别说明, Javascript代码不会等到页面加载完毕后才执行.比如一个网页里含有以下HTML代码: 复制代码 代码如下: <div id="ele">welcome to www.jb51.net</div> 如果你在这行HTML代码前,加入如下Javascript代码: 复制代码 代码如下: <script type="text/javascript">  document.

JavaScript基本对象_基础知识

作者:excelence转贴 整理日期:2004年6月15日 本文不只是关于JavaScript的,它是关于Notes/Domino中的JavaScript的! 虽然如是说,不过还是值得一看! 希望你有所收获! 亲密接触单选按钮.复选框和JavaScript的一些有趣的事情  我将以对象模型和一些常用对象开始,因为JavaScript里的一切都是从对象展开的.记住,本文不只是关于JavaScript的,它是关于Notes/Domino中的JavaScript的. 窗口 窗口是对象模型的顶端对象.

javascript RegExp 使用说明_基础知识

一:正则表达式的创建方式   1.文字格式,使用方法如下:   /pattern/flags(即:/模式/标记)   2.RegExp构造函数,使用方法如下:   new RegExp("pattern"[,"flags"])(即:new RegExp("模式"[,"标记"]))      参数:   pattern(模式):表示正则表达式的文本   flags(标记):如果指定此项,flags可以是下面之一:      g:

javascript获取函数名称、函数参数、对象属性名称的代码实例_基础知识

一.获取函数名称的3种实现方法实例1: 在js权威指南中看到的一个方法: Function.prototype.getName = function(){    return this.name || this.toString().match(/function\s*([^(]*)\(/)[1]} 实例2: 如果当前函数是有名函数,则返回其名字,如果是匿名函数则返回被赋值的函数变量名,如果是闭包中匿名函数则返回"anonymous". 复制代码 代码如下:      var getF

javascript中实现兼容JAVA的hashCode算法代码分享_基础知识

在java中一个hashCode算法,可以用来计算一个字符串的hash值,今天一个朋友突然问俺能不能在js中计算hashCode,要求和java的hashCode计算结果一样. 对于java的hashCode,以前到现在也一直没有了解过其算法,不过猜想应该也不会太难,于是现在java中写了这段代码进行测试: 运行结果:899755 按下Ctrl键点击hashCode方法名跟进去看了下其算法,发现是很简单的几句代码,如下所示: 复制代码 代码如下: public int hashCode() {