String. trim()
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
}
Date.format()
Date.prototype.format = function(format)
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
alert((new Date()).format('yyyy-MM-dd'));
Arguments
function func(a,b,r){
alert( arguments.length);
}
func(9);//实际传入方法的参数个数1
alert( func.length);//方法的参数总数3
函数里头前面没var的变量或方法在函数执行后变成全局(上级作用域)的,有var的才是局部变量
例1:
function sayHello2() {
sayAlert = function() { alert(123); } ;
}
sayHello2();
sayAlert();
例2:
function sayHello2() {
var id="007";//函数内部有效
name="hello";//函数执行后升级为上级作用域的变量
}
sayHello2();
alert(name);//hello
alert(id);//报错:id未定义
闭包的例子
例1:
function genFuns() {
var array=[];
for(var i=0;i<3;i++){
var fun=function(num){return function(){alert(num)}}(i);//执行结果 0 1 2
//var fun = function(){alert(i)};//执行结果 3 3 3
array.push(fun);
}
return array;
}
var sy = genFuns();
for(var j=0;j<sy.length;j++)
sy[j]();
例2:(转自http://hi.baidu.com/xiaolei1982/blog/item/98d8a0ef75d444edce1b3eba.html)
在Javascript里,如果你声明了一个内嵌函数,局部变量将在函数返回后依然可访问。
function sayHello2(name) {
var text = 'Hello ' + name; // local variable
var sayAlert = function() { alert(text); }
return sayAlert;
}
var sy = sayHello2('never-online');
sy();
例3:
function say667() {
var num = 666;
var sayAlert = function() { alert(num); }
num++;
return sayAlert;
}
var sy = say667();
sy(); //667
例4:
<script type="text/javascript">
function setupSomeGlobals() {
// Local variable that ends up within closure
var num = 666;
// Store some references to functions as global variables
gAlertNumber = function() { alert(num); }
gIncreaseNumber = function() { num++; }
gSetNumber = function(x) { num = x; }
}
</script>
<button onclick="setupSomeGlobals()">生成 - setupSomeGlobals()</button>
<button onclick="gAlertNumber()">输出值 - gAlertNumber()</button>
<button onclick="gIncreaseNumber()">增加 - gIncreaseNumber()</button>
<button onclick="gSetNumber(5)">赋值5 - gSetNumber(5)</button>
parseInt
对于parseInt("01")到parseInt("07");都能得到正确的结果,但如果是parseInt("08") 或parseInt("09")则返回0;
首先看parseInt语法:parseInt(string, radix);
其中string为要转换的字符串,radix为二进制,八进制,十六进制或十进制。
在默认不指定radix时,当以0x开关时,为十六进制;如果以0开关且第二位不为x,则让为是八进制,(因为八进制不能有8,9所以报错返回0)。
所以,在我们用时还是明确指定进位制,以防出错。
如我们平时都用十进制位,我们就 parseInt("08", 10);
js数组最大值max和最小值min
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值
189

被折叠的 条评论
为什么被折叠?



