Web前端开发QQ群 110939958-业余程序员
问题来源 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...
可以备份大量数据
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...
我忘了是否从哪里看过,或者是否是经典,仅仅是突然想到的,就是这样
扩展一个函数的延时调用 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写日志,呵呵