JS开发中的几个彰显水准的技巧

1.使用requestAnimationFrame

JavaScript创建动画时使用requestAnimationFrame帧动画,它很类似于setTimeOut函数,并且当标签页失去焦点时,它就不再运行

 一般用法:

function render(){
	//TODO
	requestAnimationFrame(render);
}
render();

 启动/停止的用法之一:

//启动/停止的方法:
var requestId;

function loop() {
	...
	// do stuff
	...
	requestId = window.requestAnimationFrame(loop, canvas);
}

function start() {
	if (!requestId) {
		loop();
	}
}

function stop() {
	if (requestId) {
		window.cancelRequestAnimationFrame(requestId);
		requestId = undefined;
	}
}

 

2.使用while循环

我们经常使用倒序循环:

for(var i=0; i< array.length; i++){
	//Do Something
}

使用while循环效率更高:

var i = array.length;
while(i--) {
  //Do Something
}

 

3.禁用选中

当canvas占据了整个屏幕,我们想在Canvas控件中禁用选中,可是有如下代码:

// 禁用鼠标选中DOM元素
document.onselectstart = function() {
  return false;
};

 

4.定义回调

我们经常这样设置回调函数:

$("#id").click(function() {
  // 回调函数
  // 返回false在JQuery中会阻止消息的传递和默认行为的放生
  return false;
});

    或者:

$("#id").click(myFunction);
function myFunction(event) {
  //Do Something
  return false;
}

 我们应尽量像如下方式设置回调函数,这样不仅可以轻易将函数从事件上解除,而且可以避免污染全局变量空间,同时增加代码的可维护性:

$("#id").click(callbacks.myFunction);
//所有的回调函数都在callbacks对象中
var callbacks = {
	myFunction:function(event) {
		//Do Something
		return false;
	}
}
// 解除某个函数的绑定
$("#someid").unbind('click', callbacks.myFunction);

 

5.链式三元运算

我们经常这样做:

var number = a > 5 ? 200 : 38;

 其实我们还可以这样做:

var number =
	a < 5 ? 200 :
	a < 7 ? 38 :
	a < 11 ? 15 :
	a < 15 ? 49 :
	64;
//比使用when效率更高
//when a >=15

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值