JavaScript语法规范
推荐的JavaScript编码规范
var name = 'TG';
var sex = 'man';
var name = 'TG', sex = 'man';
var MY_NAME = 'TG';
if(a){
function foo(){}
}
if(a){
var foo = function(){}
}
try{}catch(e){}
throw exception
9、缩进
用4个空格作为一缩进,而不是使用tab
原因:因为在不同浏览器上,tab的长度不一。
10、字符串过长截取
每行代码不超过80个字符。如代码过长,可使用+运算符拼接。
原因:过长会导致需要拖动横向滚动条才看得到后面的代码,降低开发效率,而且在复制黏贴时有可能错漏。
11、大括号
区块起首的大括号,不要另起一行
推荐:
if (true) {
}
不推荐:
if (true)
{
}
原因:JavaScript会自动添加句末的分号,容易导致一些奇怪的错误。
12、构造函数
对于构造函数,命名采用首字母大写,其他函数一律小写。
原因:可读性,区分构造函数和普通函数
13、注释
合理的加上注释,有利于后期维护,提高可读性。
14、{}和[]
使用{}代替new Object(),使用[]代替new Array()
15、单引号(')
尽量使用单引号('),只在JSON文件中使用双引号。
16、变量和函数声明
变量名和函数名在JavaScript机制下会发生声明提升(也就是会提前到顶部声明),所以建议变量和函数应该在使用前声明。
在《JavaScript学习笔记整理(2):类型、值和变量》一文中有提到声明提升
17、使用===和!==代替==和!=
在JavaScript中,比较运算符进行计算时会进行强制转换,==和!=会产生一些意想不到的结果,所以应该用“严格相等”===。
18、换行
在语句块和下一个语句之间留一个空行,提高可读性。
19、命名
构造函数或类名使用驼峰式命名
20、嵌入规则
JavaScript程序应该尽量放在.js的文件中。
21、命名规则
JavaScript 中的标识符的命名规则:
- 以字母、下划线'_'或美元符号'$'开头
- 允许名称中包含字母,数字,下划线'_'和美元符号'$'
- 区分大小写
变量、属性和函数名应该用驼峰式:
var isLogin = false;
私有函数用下划线开头:
function getFirstName(){
function _getName(){}
}
构造函数和类名应该首字母大写。
对象中私有变量和函数以下划线开头。
22、语句
对于复合语句,if, for, while, do, switch, try … catch 等代码体,函数定义的函数体,对象的定义等都需要放在花括号'{}'里面。
- '{' 应在行末,标志代码块的开始。
- '}' 应在一行开头,标志代码块的结束,同时需要和'{'所在行的开始对齐,以表明一个完整的复合语句段。这样可以极大地提高代码的可阅读性,控制逻辑能清晰地表现出来。
- 被包含的代码段应该再缩进 4 个空格。
- 即使被包含的代码段只有一句,也应该用花括号'{}'包含。尽管不用花括号代码也不会错,但如若需要增加语句的话,则较容易因花括号遗漏而引起的编译错误或逻辑错误。
return语句在使用时也需注意,如果用表达式的执行作为返回值,应该把表达式和 return 放在同一行中,以免换行符被误解析为语句的结束而引起返回错误。return 关键字后若没有返回表达式,则返回 undefined。构造器的默认返回值为 this。
return a + b;
23、方法链(调用链)
如果使用方法链,应该每行只调用一个方法:
Animal
.getName()
.getFirstName()
24、使用三元运算符
三元运算符不应该用在一行,应该分割成多行替代。
推荐:
var foo = (a === b)
? 1
: 2;
不推荐:
var foo = (a === b) ?1 : 2;
25、逗号
对于数组和对象不要使用多余的“,”
不推荐:
var arr = [1,2,]
var person = {
name: 'TG'
};
原因:IE不兼容
26、for-in
对于数组,尽量避免使用for-in
JavaScript语法规范的更多相关文章
- JSLint检测Javascript语法规范
前端javascript代码编写中,有一个不错的工具叫JSLint,可以检查代码规范化,压缩JS,CSS等,但是他的语法规范检查个人觉得太“苛刻”了,会提示各种各样的问题修改建议,有时候提示的信息我们 ...
- javascript 语法规范错误提示代码
“Missing semicolon.” : “缺少分号.”, “Use the function form of \”use strict\”.” : “使用标准化定义function.”, “Un ...
- javascript语法规范和良好的变成习惯
1.1空白和多行书写 1.空白:空格键输入的空白.tab键输入的空白以及回车键输入的空白 2.多行书写,不能将引号内的字符串放到两行,不然容易报错. 1.2点语法 . 点语法表达式由对象开始,接着是一 ...
- JavaScript 中语法规范及调试
JavaScript 中语法规范及调试 版权声明:未经博主授权,内容严禁分享转载 JavaScript 开发环境 JavaScript 脚本可以使用任意一款纯文本编辑器进行编程开发. 常见的前端开发编 ...
- web前端(14)—— JavaScript的数据类型,语法规范1
编辑器选择 对js的编辑器选用,有很多,能对html编辑的,也能对js编辑,比如notepad++,visual studio code,webstom,atom,pycharm,sublime te ...
- Javascript模块化规范
Javascript模块化规范 一.前端js模块化由来与演变 CommonJS 原来叫 ServerJS,推出 Modules/1.0 规范后,在 Node.js 等环境下取得了很不错的实践.09年下 ...
- 谈谈javascript语法里一些难点问题(一)
1) 引子 前不久我建立的技术群里一位MM问了一个这样的问题,她贴出的代码如下所示: var a = 1; function hehe() { window.alert(a); var a = ...
- 【转发】网易邮箱前端技术分享之javascript编码规范
网易邮箱前端技术分享之javascript编码规范 发布日期:2013-11-26 10:06 来源:网易邮箱前端技术中心 作者:网易邮箱 点击:533 网易邮箱是国内最早使用ajax技术的邮箱.早在 ...
- 网易前端JavaScript编码规范
在多年开发邮箱webmail过程中,网易邮箱前端团队积累了不少心得体会,我们开发了很多基础js库,实现了大量前端效果组件,开发了成熟的opoa框架以及api组件,在此向大家做一些分享.今天想先和大家聊 ...
随机推荐
- Aircrack-ng: (1) 概述
目录 一.概述 二.工具与命令介绍 Linux命令 (1) ifconfig (2) macchanger (3) iwconfig (4) iwlist Aircrack-ng 工具 (1) air ...
- UIBezierPath-绘制基本图形
步骤1:确定路径 步骤2:渲染 override func draw(_ rect: CGRect) { let path:UIBezierPath // 矩形 // path = UIBezierP ...
- [原创]python之socket-ftp
今天来讲讲ftp文件下载,感觉挺有趣的,知道吧,就那种看到新文件生成,而自己写的代码也不多,那种成就感! 一.需求: 客户端发送指令给服务端,服务端根据指令找到相应文件,发送给客户端 分析: PS:e ...
- iPhone被盗后续更新二:被换机!已取机!没扣住新机!怎么找新机呢?事发半年后跟进...
先说下情况 MEID/IMEI:3544 2706 9380 456 我的序列号:F17NL088G5MY 新的IMEI:3569 7606 5956 097 新的序列号:DNPNV69ZG5MY 我 ...
- Java javassist动态代理
package org.windwant.spring.core.proxy; import javassist.ClassPool; import javassist.CtClass; import ...
- Tomcat中更改网站根目录
Tomcat的默认目录是指向webapps下的root目录,输入http://localhost:8080,会打开root目录下的页面.我想让localhost指向我自己的目录.比如webapps/m ...
- David Camp 微信公众平台开发官方内容拓展版---PHP版本
微信公众平台开发(一) 配置接口 微信公众平台开发(二) 微信公众平台示例代码分析 微信公众平台开发(三) 订阅事件(subscribe)处理 微信公众平台开发(四) 简单回复功能开发 微信公众平台开 ...
- ES5 的 setter 和 getter
有两种方式使用 setter 和 getter 1. set/get var person = { _name: '', get name() { return this._name }, set n ...
- Linux下使用 Memory Analyzer
一. 安装Memory Analyzer Tool 打开eclipse >> Help >> Install New Software >> 点击Work With ...
- Linux驱动开发概述
原文出处:http://www.cnblogs.com/jacklu/p/4722563.html Linux设备分类 设备的驱动程序也要像裸机程序那样进行一些硬件操作,不同的是驱动程序需要" ...