一些JavaScript的处理
倒计时计算
<body>
<div id="countdown"></div>
<mce:script type="text/javascript"><!--
var i = 0;
(function(){
var hour, min, sec, text;
tmp = 12 * 60 * 60 - i;
hour = Math.floor(tmp / 3600);
tmp %= 3600;
min = Math.floor(tmp / 60);
tmp %= 60;
sec = tmp;
text = hour + ' 时 ' + min + ' 分 ' + sec + ' 秒';
document.getElementById("countdown").innerHTML = text;
i++;
setTimeout(arguments.callee, 1000);
})();
// --></mce:script>
</body>
说明:callee也拥有length属性,arguments.length是实参长度,arguments.callee.length是形参长度。
当连续调用同一函数并传递参数,函数体处理的是最后一次调用函数时传递的值,前面传递的值被覆盖
造成该问题出现的常见情况:
1) 函数体内做处理时,使用了全局变量存储参数值(函数体内没有用var关键字定义变量),导致第二次的参数值覆盖了上次的内容
2) 参数值在延时函数(如setTimeout)内使用,当第二次参数值传递进来后第一次的延时函数还未执行,导致第二次传递的值覆盖了上次的内容
避免内存泄漏
1)统一处理DOM对象,避免交叉使用
2)对DOM Node的操作进行管理,有添加有移除
3)使用null释放资源
参考:JavaScript内存泄漏文章
Null 、undefined 、typeof
1)使用var关键字进行变量声明,但未初始化时,值为null
2)未使用var声明变量,变量名也未初始化,变量属于undefined
3)使用typeof返回的值是字符型 "undefined"/ "object"
使用闭包处理参数传递问题
package = function(param1, param2){
return function(){...};
}
fn = package(p1, p2);
setTimeout(fn, 1000);
相关文档:
第 三 集
--------------------------------------------------------------------------------
曾 有 许 多 网 友 问 我 有 关JavaScript与 框 架(为 求 方 便, 以 下 均 用frame表 示)合 用 的 问 题。 事 实 上,若 您 同 时 想 用frames和JavaScript的 功 能,
首 先 您 必 需 拥 有Netscape Navigator 2.0 (或 以 ......
写下一个关于用正则表达式验证表单的代码,以后可以用到。
function checkform(){
var null_regu = /^[ ]*$/;
var age_regu = /^[1-9][0-9]$/;
var tel_regu = /^[0-9]*(-){0,1}[0-9]{8,11}$/;
var email_regu=/^[\w]+[\w-\.]*@([\w]+\.)+[\w]+$/;
var qq_regu=/^(\d+){6,12}/;
if(new RegExp(null_regu ......
一直想对Javascript再次做一些总结,正好最近自己写了一个小型Js
UI库,总结了一下Js的继承机制,在网上也看了一些前辈们博客里的总结,感觉分析不是特别全面。这里仅仅是把自己的学习体会拿出来分享一下,希望对大家
学习Javascript有所帮助。
Javascript本身是从Perl语言的语法演变而来的,本质上是脚本语言 ......
你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器。
几天前,浏览器家族有刚诞生了一位小王子,就是Google推出的Chrome浏览器。由于Chrome出生名门,尽管他还是个小家伙,没有人敢小看他。以后,咱们常说浏览器的&ld ......
你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器。
几天前,浏览器家族有刚诞生了一位小王子,就是Google推出的Chrome浏览器。由于Chrome出生名门,尽管他还是个小家伙,没有人敢小看他。以后,咱们常说浏览器的&ld ......