js杂七杂八

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 οnclick="setupSomeGlobals()">生成 - setupSomeGlobals()</button> 
<button οnclick="gAlertNumber()">输出值 - gAlertNumber()</button> 
<button οnclick="gIncreaseNumber()">增加 - gIncreaseNumber()</button> 
<button οnclick="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));//最小值

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值