@TerryWan
2015-10-24T17:48:50.000000Z
字数 2604
阅读 1294
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); //undefined
if(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;
}