本章没有深奥的讲解js一些底层原理,比如this指针、作用域、原型啦,涉及的都是一些有利于平时开发时简化代码,提高执行效率,或者说可以当做一种经验方法来使用,篇幅都不长,小步快跑的让你阅读完整篇文章,体验编程的快乐。
获取两个区间之内随机数
复制代码 代码如下:
function getRandomNum(Min, Max){ // 获取两个区间之内随机数
// @逆火狂飙 提出有可能第一个参数大于第二个参数,所以增加一下判断更可靠
if (Min > Max)
Max = [Min, Min = Max][0]; // 快速交换两个变量值
var Range = Max - Min + 1;
var Rand = Math.random();
return Min + Math.floor(Rand * Range);
};
随机返回一个 正/负参数
复制代码 代码如下:
function getRandomXY(num){ // 随机返回一个 正/负参数
num = new Number(num);
if (Math.random() <= 0.5)
num = -num;
return num;
}
setInterval()或setTimeOut()计时器函数传参
复制代码 代码如下:
var s = '我是参数';
function fn(args) {
console.log(args);
}
var a = setInterval(fn(s),100); // xxxxxx错误xxxxx
var b = setInterval(function(){ // 正确,用匿名函数调用被计时函数
fn(s);
}, 100);
setInterval()或setTimeOut()计时器递归调用
复制代码 代码如下:
var s = true;
function fn2(a, b){ // 步骤三
if (s) {
clearInterval(a);
clearInterval(b);
}
};
function fn(a){ // 步骤二
var b = setInterval(function(){
fn2(a, b) // 传入两个计时器
}, 200)
};
var a = setInterval(function(){ // 步骤一
fn(a); // b代表计时器本身,可座位参数传递
}, 100);
字符串转换为数字
复制代码 代码如下:
// 无需 new Number(String) 也无需 Number(String) 只需字符串减去零即可
var str = '100'; // str: String
var num = str - 0;// num: Number
空值判断
复制代码 代码如下:
var s = ''; // 空字符串
if(!s) // 空字符串默认转换为布尔false,可以直接写在判断语句里面
if(s != null) // 但是空字符串 != null
if(s != undefined) // 空字符串也 != undefined
IE浏览器parseInt()方法
复制代码 代码如下:
// 下面的转换在IE下为0,其他浏览器则为1,这跟IE浏览器解释数字的进制有关
var iNum = parseInt(01);
// 所以,兼容的写法为
var num = parseInt(new Number(01));
Firebug便捷调试js代码
复制代码 代码如下:
//Firebug内置一个console对象,提供内置方法,用来显示信息
/**
* 1:console.log(),可以用来取代alert()或document.write(),支持占位符输出,字符(%s)、整数(%d或%i)、浮点数(%f)和对象(%o)。如:console.log("%d年%d月%d日",2011,3,26)
* 2:如果信息太多,可以分组显示,用到的方法是console.group()和console.groupEnd()
* 3:console.dir()可以显示一个对象所有的属性和方法
* 4:console.dirxml()用来显示网页的某个节点(node)所包含的html/xml代码
* 5:console.assert()断言,用来判断一个表达式或变量是否为真
* 6:console.trace()用来追踪函数的调用轨迹
* 7:console.time()和console.timeEnd(),用来显示代码的运行时间
* 8:性能分析(Profiler)就是分析程序各个部分的运行时间,找出瓶颈所在,使用的方法是console.profile()....fn....console.profileEnd()
*/
快速取当前时间毫秒数
复制代码 代码如下:
// t == 当前系统毫秒值,原因:+号运算符会,会调用Date的valueOf()方法。
var t = +new Date();
快速取小数整数位
复制代码 代码如下:
// x == 2,以下x值都为2,负数也可转换
var x = 2.00023 | 0;
// x = '2.00023' | 0;
两个变量值互换(不用中间量)
复制代码 代码如下:
var a = 1;
var b = 2;
a = [b, b=a][0]
alert(a+'_'+b) // 结果 2_1,a和b的值已经互换。
逻辑或'||'运算符
复制代码 代码如下: