前端编码风格规范(3)—— JavaScript 规范

其他三个写的也挺好的,不过html和css我已经参照了其他的。

防污染与IIFE

(function($, w, d){
'use strict'; $(function() {
w.alert(d.querySelectorAll('div').length);
});
}(jQuery, window, document));

总是使用var来声明变量

所有的变量以及方法,应当定义在 function 内的首行。只用一个 var 关键字声明,多个变量用逗号隔开。

把赋值尽量写在变量申明中。

总是使用 === 精确的比较操作符

真假判断

false:false, 0, undefined, null, NaN, ''

true: true, 1, {}, [], '0'

逻辑操作符 || 和 && 也可被用来返回布尔值

(function(log){
'use strict';

function multiply(a, b) {

//给变量赋值

a = a || 1;

b = b || 1;

 

log('Result ' + a * b);

}

 

multiply(); // Result 1

multiply(10); // Result 10

multiply(3, NaN); // Result 3

multiply(9, 5); // Result 45

 

}(window.console.log));

总是使用分号

分号需要用在表达式的结尾,而并非函数声明的结尾

var foo = function() {
return true;
}; // semicolon here.

function foo() {

return true;

} // no semicolon here.

不能在语句块内的函数声明

// 不推荐
if (x) {
function foo() {}
} // 推荐
if (x) {
var foo = function() {};
}

如何自定义异常?

抛出对象

if(name === undefined) {
throw {
name: 'System Error',
message: 'A name should always be specified!'
}
}

闭包有什么用?关于闭包如何工作的合理解释

不在循环中创建函数或闭包

只在构造函数和对象的方法中 使用this

不要使用switch

用数组和对象字面量

禁止修改内建对象的原型链

圆括号,不要用在一元操作符上,例如 delete, typeof 和 void,或在关键字之后,例如 return, throw, case, new 等。

字符串统一使用单引号(‘)

js语言精粹

缩进2个空格

if和 ( 之间放一个空格

函数调用时,才使 ( 和前面的符号相连

除了 . 和 [ 的所有中置运算符两边都放空格

每个逗号和冒号后都使用一个空格

每行最多放一个语句

如果一行放不下,会在一个冒号或二元运算符后拆开它

以行注释为主;块注释用于正式的文档记录和注释。

把 { 放在一行的结尾,而不是下一行的开头

javascript 编码规范的更多相关文章

  1. JavaScript编码规范指南

    前言 本文摘自Google JavaScript编码规范指南,截取了其中比较容易理解与遵循的点作为团队的JavaScript编码规范. JavaScript 语言规范 变量 声明变量必须加上 var  ...

  2. 【转发】网易邮箱前端技术分享之javascript编码规范

    网易邮箱前端技术分享之javascript编码规范 发布日期:2013-11-26 10:06 来源:网易邮箱前端技术中心 作者:网易邮箱 点击:533 网易邮箱是国内最早使用ajax技术的邮箱.早在 ...

  3. 网易前端JavaScript编码规范

    在多年开发邮箱webmail过程中,网易邮箱前端团队积累了不少心得体会,我们开发了很多基础js库,实现了大量前端效果组件,开发了成熟的opoa框架以及api组件,在此向大家做一些分享.今天想先和大家聊 ...

  4. JavaScript编码规范[百度]

    JavaScript编码规范 1 前言   2 代码风格   2.1 文件   2.2 结构   2.2.1 缩进   2.2.2 空格   2.2.3 换行   2.2.4 语句   2.3 命名 ...

  5. 网易邮箱前端Javascript编码规范:基础规范

    在多年开发邮箱webmail过程中,网易邮箱前端团队积累了不少心得体会,我们开发了很多基础js库,实现了大量前端效果组件,开发了成熟的opoa框架以及api组件,在此向大家做一些分享.今天想先和大家聊 ...

  6. JavaScript 编码规范(中文/Airbnb公司版)

    Airbnb 是一家位于美国旧金山的公司,本文是其内部的 JavaScript编码规范,写得比较全面,在 Github 上有 16,686 + Star,3,080 + fork,前端开发人员可参考. ...

  7. 学习一份百度的JavaScript编码规范

    JavaScript编码规范 1 前言 2 代码风格 2.1 文件 2.2 结构 2.2.1 缩进 2.2.2 空格 2.2.3 换行 2.2.4 语句 2.3 命名 2.4 注释 2.4.1 单行注 ...

  8. 《编写可维护的JavaScript》——JavaScript编码规范(一)

    缩进层级 代码如何缩进通常有两种主张: 使用制表符缩进 每一个缩进层级都用单独的制表符表示.这种方法的主要缺点是:系统对制表符的解释不一致.这些差异会导致不同的开发者对同一段代码有不同的看法的,这正是 ...

  9. javascript编码规范[原创]

    一些命名规范书或js书命名规范章节,喜欢将命名规范跟语法混在一块例如: 1.使用“var”定义.初始化变量防止产生全局变量,多变量一块定义使用“,”(本身这种方式就很有争议). 2.结尾必加“;”防止 ...

  10. Javascript编码规范,好的代码从书写规范开始,增强代码的可读性,可维护性,这是相当重要的!

    1. 前言 JavaScript在百度一直有着广泛的应用,特别是在浏览器端的行为管理.本文档的目标是使JavaScript代码风格保持一致,容易被理解和被维护. 虽然本文档是针对JavaScript设 ...

随机推荐

  1. do_something方法解析

    /** * 运行任务 * @param $interval * @return bool */ static public function do_something($interval) { //是 ...

  2. 部分开源gis 方案的比较

    3.1MapServer和GeoServer的总体对比 功能上:MapServer弱于GeoServer,QGIS要强于UDIG. 效率上:Mapserver对WMS(Web Map service) ...

  3. linux如何查询系统驱动是否支持该型号显卡

    操作系统在做硬件适配时,经常会检查系统内核是否支持硬件的显卡:如果不支持,则一般是通过升级内核或者该型号对应品牌的显卡驱动来解决(开源或者闭源): 操作流程如下 1> 查询本机的显卡型号 因显卡 ...

  4. System.Runtime.InteropServices.COMException: 检索 COM 类工厂中 CLSID 为 {0002E510-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80040154

    这个问题困恼我好几天了,今天终于解决. 开始我在网上左百度右google,都没搜到最终的解决方案,今天我把解决方案贴出来,以供大家分享! 网上有些是报80070005错误的,跟我这个80040154错 ...

  5. ASCII码表以及不同进制间的O(1)转换

    ASCII码表以及不同进制间的O(1)转换          一.ASCII码表 ASCII全称为American Standard Code for Information Interchange, ...

  6. Date时间

    var date_obj= new Date(); alert(date_obj.toLocaleString()) //2017/12/26 上午1:10:54 var date_obj2= new ...

  7. Ubunton安装mysql

    #手下下载tar.gz包#首先手工建立mysql用户和用户组 > groupadd mysql > useradd -r -g mysql mysql#然后就是安装的解压 编译安装 > ...

  8. 使用yarn 安装 Vue-DevTools

    1. 从 github 下载 vuejs/vue-devtools https://github.com/vuejs/vue-devtools/archive/dev.zip 2.安装yarn 及 编 ...

  9. bootstrap之css样式

    一 bootstrap的介绍 Bootstrap是将html,css和js的代码打包好了,只管我们拿来调用.是基于jquery开发的. 使用BootCDN提供的免费CDN加速服务,同时支持http和h ...

  10. 2018.11.02 NOIP模拟 飞越行星带(最小生成树/二分+并查集)

    传送门 发现题目要求的就是从下到上的瓶颈路. 画个图出来发现跟去年noipnoipnoip提高组的奶酪差不多. 于是可以二分宽度+并查集检验,或者直接求瓶颈. 代码