js常见技巧

javascript 常用技巧积累(不定期更新)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//数组拼接,arr2追加到arr1之后
Array.prototype.push.apply(arr1,arr2);

//对象转换为数组
var argArray = Array.prototype.slice.call(arguments);

//验证是否为数字
function isNumber(n){
return !isNaN(parseFloat(n)) && isFinite(n);
}


//判断是否为数组
function isArray(obj){
return Object.prototype.toString.call(obj) === '[object Array]';
}

//获取数组中的最大值和最小值
Math.max.apply(Math, numbers);
Math.min.apply(Math, numbers);

//清空数组
arr.length = 0;

//删除数组元素不要使用delete和remove
items.splice(3,1);

//保留小数位数
number.toFixed(4);

//循环检查对象的属性
for(var name in object){
if(object.hasOwnProperty(name)){

}
}

//逗号操作符,运算优先级最低,先计算左边再计算右边最后返回最右边
var c = (a++,b++,100);
//c = 100

//使用for循环数组的时候要将计算数组长度的逻辑放在第一个声明中

JS API设计原则

  1. 参数类型判断与控制
1
2
3
4
5
function castAsway(some_string,some_integer,some_boolean){
some_string += '';
some_integer += 0;// parseInt(some_integer,10);
some_boolean = !!some_boolean;
}
  1. 函数的默认参数
1
2
3
4
5
6
7
8
9
10
11
12
var default_options = {
accepts: 'text',
async: false,
cache: true,
complete: null,
// ...

};
function dream(options){
var o = $.$.extend({}, default_options, options || {});

}
  1. 友好地处理异常和错误
1
2
3
if(Object.prototype.toString.call(callback) !== '[object Function]'){
throw new TypeError('callback is not a function');
}

JS