Web前端开发QQ群 110939958-业余程序员

[]==false之原理

问题来源 var a = []; if(a) alert("true");//true if(a == true) alert("true");//false 原理 js引擎会先计算括号内的表达式然后将结果转换为布尔值,所以 if(a) => if(!!a) => true if(a == true) => if(Number(a) == true) => if(0 == true) => true 注: 在比较的两个值中,如果有一个是布尔类型,那么另外一个值将会先被转换为数字类型再与其比较。 参考: 双等号的比较原理 所以,下面这个就会有看起来奇怪的结果 [] == ![] //true

超长叠代

for(var i=0; i<1000000; i++) { //do some thing. } 话说以上代码很可能会被浏览器判作执行超时。 试验了一下可以用浏览器的延时来做: (function() { //do some thing. setTimeout(arguments.callee, 0); })(); 这样一来CPU倒是基本没有,但是这样的代码运行过慢,所以综合一下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" c...

MYSQL导入与导出命令

可以备份大量数据 1,数据库备份命令 mysqldump -h localhost -u root -p --default-character-set=utf8 dbname >backup.sql 2,导入数据命令: mysql -h localhost -u root -p --default-character-set=utf8 use dbname source backup.sql

双等号的比较原理

直接摘自ECMA262 章节号:11.9.3 The Abstract Equality Comparison Algorithm 比较 x == y, 当 x 和 y 都是值的时候, 产生true或false. 这样的一个比较执行如下: If Type(x) is the same as Type(y), then If Type(x) is undefined, return true. If Type(x) is Null, return true. If Type(x) is Number, then If x is NaN, return false. If y is NaN, return false. If x is the same Number value as y, return true. If x is +0 and y is −0, return true. ...

自定义事件之双击按键

遇到这样的需求,双击按键的事件 还是直接上代码吧: //首先准备好常规的事件绑定函数 function addEvent(element, name, callback) { //标准浏览器 if(element.addEventListener) element.addEventListener(name, callback, false); //IE else element.attachEvent("on" + name, callback); } //双击按键绑定函数 function addDblPressEvent(element, callback) { var presstime = 2;//次数为2 addEvent(element, "keyup", press); //每次单击触发 function press(e) { presstime--; setTimeout(reset, 300); if(presstime === 0) fir...

system

我忘了是否从哪里看过,或者是否是经典,仅仅是突然想到的,就是这样

function.delay

扩展一个函数的延时调用 Function.prototype.delay = function(n, thisObj, args) { var me = this; args = args instanceof Array ? args : []; var f = function() { me.apply(thisObj || window, args); }; window.setTimeout(f, n); } //示例 function f() { alert("hi"); } alert("两秒之后弹出"); f.delay(2000); 注意第三个是参数数组 第一次用Live Writer写日志,呵呵