提高jQuery效率
创建隐式全局变量的反例-使用任务链进行部分var声明
//反例,勿使用
function foo() {
var a = b = 0; //a是本地变量但b是全局变量
// ...
}
//正确
function foo() {
var a, b;
// ... a = b = 0; // 两个均为局部变量
}
隐式全局变量和明确定义的全局变量间的差异
通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。
无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的。
在技术上,隐式全局变量并不是真正的全局变量,但它们是全局对象的属性。属性是可以通过delete操作符删除的,而变量是不能的。
for循环
//不足在于每次循环的时候数组的长度都要去获取下(反例)
for (var i = 0; i < myarray.length; i++) {
// 使用myarray[i]做点什么
}
左花括号的位置
// 警告: 意外的返回值
function func() {
return
// 下面代码不执行 由于隐含分号,函数返回undefined
{
name : "Batman"
}
}
精简javascript
尽可能的合并函数(这点自己忽略了!!!)
$first.on('click',function(){
$first.css({
'border':'1px solid red',
'color':'blue'
});
});
链式操作
//糟糕
$second.html(value);
$second.on('click',function(){
alert('hello everybody');
});
$second.fadeIn('slow');
$second.animate({height:'120px'},500);
//建议
$second.html(value);
$second.on('click',function(){
alert('hello everybody');
}).fadeIn('slow')
.animate({height:'120px'},500);
短路操作符号
短路表达式: “&&”和”||”
foo = foo||bar; &&取最后值,||取第一满足的值