@TerryWan
2015-10-24T09:48:50.000000Z
字数 2604
阅读 1604
JS即拿即用
Javascript脚本文件编码格式统一使用UTF-8,使用Tab缩进,并且设置一个Tab符等于4个空格符。
===匈牙利命名法简化表格===
| 变量类型 | 简写示例 |
|---|---|
| String 字符串 | s 例:sWebURL |
| Array 数组 | a 例:aCoinList |
| Number 数值(包括 Interger 和 Float) | n 例:nUserCoin |
| Function 函数 | f 例:fGetData |
| Object对象 | o 例:oUserInfo |
| Regular Expression 正则表达式 | r 例:rMsg |
在Javascript中,变量声明无论放在什么位置,都会被解析器置顶解析。另外置顶声明,一方面有利于代码管理,二来可减少重复声明变量引起不必要的问题。
function createPerson() {//正确var name = 'A';var age = 20;console.log(str); //undefinedif(age > 18) {//不推荐的写法,应在函数体内顶部声明!var str = 'You are adult already!';console.log(str);}}
虽然大多数JS引擎都支持块内声明函数,但它并不是 ECMAScript 标准的一部分(详见 ECMA-262, 第13条和第14条)。更糟糕的是各引擎对于块内函数声明的实现都不一样,和 EcmaScript 的建议相违背。
if(x) {//不推荐的写法function test() {//code}}
'''每一语句或函数表达式都要加上分号,且每一条语句要换行,变量声明除外。'''
如果不加分号JS解释器也会按隐式分隔的标准去执行,但那样调试、压缩、合并的时候容易造成很多不必要的问题。
var method = function() {return 5;}(function() {// 一个匿名函数,在这里会被错误解析当作参数调用导致报错})();//这段程序执行时,浏览器会报错误提示:"TypeError: number is not a function"
//不推荐function method(){//code}//推荐的写法function method() {//code...}if (a) b(); c();//原意可能是:if (a) {b();c();}//实际就会变成if (a) {b();}c();
单引号(')比双引号(")更好。
使用单引号(')比双引号(")更好,特别是当创建一个HTML代码的字符串时候:
var msg = '<div class="text">This is some HTML</div>';
规范定义JSON对象,需补全双引号,它可以避免在编码过程中出现不必须要的错误。
var data = {name: 'json' //不推荐的写法};var data2 = {"name": 'json' //推荐写法};
对功能和类型的描述,还有一些参数和原型描述等信息。
/*** 圆类.* @param {Number} x 圆的x轴坐标.* @param {Number} y 圆的y轴坐标.* @param {Number} r 圆的半径.* @constructor*/function Circle(x, y, r) {this.x = x;this.y = y;this.r = r;}
应有参数和返回值的描述,且方法描述要以使用者的身份去写。
/*** 获取圆的面积* @return {Number} 圆面积的值*/function getArea() {return this.r * 2 * 3.14;}
/*** 圆周率常量* @type {Number}* @const*/var PI = Math.PI;function Circle(x, y, r) {/* 圆的x轴坐标 */this.x = x;/* 圆的y轴坐标 */this.y = y;/* 圆的半径 */this.r = r;}