javascript中常用函數整理

來源:互聯網
上載者:User

1.typeof、constructor、instanceof對數組的判斷

 代碼如下 複製代碼

var arr = [1,5,6,9,8,5,4];
//var arr = new Array(1,5,6,9,8,5,4);
console.log(typeof arr);//object
console.log(arr.constructor());//[]
console.log(arr instanceof Array);//true

2.函數自調用

 代碼如下 複製代碼

(function (a, b) {
    console.log(a + b);//30 自調用
})(10, 20);3.去除兩邊空格

function trim (str) {
    return str.replace(/^s+|s+$/g, '');
}
console.log('   woshi   sss   ');//   woshi   sss  
console.log(trim('   woshi   sss   '));//woshi   sss


4.數字判斷

 代碼如下 複製代碼

function isNumber(n){
    return !isNaN(parseFloat(n)) && isFinite(n);
}
console.log(isNumber('e345'));

5.數組判斷

 代碼如下 複製代碼

function isArray(obj){
    return Object.prototype.toString.call(obj) === '[object Array]' ;
}
console.log(isArray(arr));

6.length的理解

 代碼如下 複製代碼

var myArray = [12 , 222 , 1000 ];
myArray.length = 0; // myArray 會變成空數組[].----- length是可讀可寫的屬性

7、base64_encode加密,解密

 代碼如下 複製代碼

function base64encode(str){
    var out,i,len,base64EncodeChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    var c1,c2,c3;
    len=str.length;
    i=0;
    out="";
    while(i<len){
        c1=str.charCodeAt(i++)&0xff;
        if(i==len){
            out+=base64EncodeChars.charAt(c1>>2);
            out+=base64EncodeChars.charAt((c1&0x3)<<4);
            out+="==";
            break;
        }
        c2=str.charCodeAt(i++);
        if(i==len){
            out+=base64EncodeChars.charAt(c1>>2);
            out+=base64EncodeChars.charAt(((c1&0x3)<<4)|((c2&0xF0)>>4));
            out+=base64EncodeChars.charAt((c2&0xF)<<2);
            out+="=";
            break;
        }
        c3=str.charCodeAt(i++);
        out+=base64EncodeChars.charAt(c1>>2);
        out+=base64EncodeChars.charAt(((c1&0x3)<<4)|((c2&0xF0)>>4));
        out+=base64EncodeChars.charAt(((c2&0xF)<<2)|((c3&0xC0)>>6));
        out+=base64EncodeChars.charAt(c3&0x3F);
    }
    return out;
}
function base64decode(str){
    var c1,c2,c3,c4,base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);
    var i,len,out;
    len=str.length;
    i=0;
    out="";
    while(i<len){
        /* c1 */
        do{
            c1=base64DecodeChars[str.charCodeAt(i++)&0xff];
        }while(i<len&&c1==-1);
        if(c1==-1) break;

        /* c2 */
        do{
            c2=base64DecodeChars[str.charCodeAt(i++)&0xff];
        }while(i<len&&c2==-1);
        if(c2==-1) break;
        out+=String.fromCharCode((c1<<2)|((c2&0x30)>>4));
        /* c3 */
        do{
            c3=str.charCodeAt(i++)&0xff;
            if(c3==61) return out;
            c3=base64DecodeChars[c3];
        }while(i<len&&c3==-1);
        if(c3==-1) break;
        out+=String.fromCharCode(((c2&0XF)<<4)|((c3&0x3C)>>2));
        /* c4 */
        do{
            c4=str.charCodeAt(i++)&0xff;
            if(c4==61) return out;
            c4=base64DecodeChars[c4];
        }while(i<len&&c4==-1);
        if(c4==-1) break;
        out+=String.fromCharCode(((c3&0x03)<<6)|c4);
    }
    return out;
}
function utf16to8(str){
    var out,i,len,c;
    out="";
    len=str.length;
    for (i=0;i<len;i++){
        c=str.charCodeAt(i);
        if((c>=0x0001)&&(c<=0x007F)){
            out+=str.charAt(i);
        } else if(c>0x07FF){
            out+=String.fromCharCode(0xE0|((c>>12)&0x0F));
            out+=String.fromCharCode(0x80|((c>>6)&0x3F));
            out+=String.fromCharCode(0x80|((c>>0)&0x3F));
        } else {
            out+=String.fromCharCode(0xC0|((c>>6)&0x1F));
            out+=String.fromCharCode(0x80|((c>>0)&0x3F));
        }
    }
    return out;
}
function utf8to16(str){
    var out,i,len,c;
    var char2,char3;
    out="";
    len=str.length;
    i=0;
    while(i<len){
        c=str.charCodeAt(i++);
        switch (c>>4){
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
        case 7:
            // 0xxxxxxx
            out+=str.charAt(i-1);
            break;
        case 12:
        case 13:
            // 110x xxxx   10xx xxxx
            char2=str.charCodeAt(i++);
            out+=String.fromCharCode(((c&0x1F)<<6)|(char2&0x3F));
            break;
        case 14:
            // 1110 xxxx  10xx xxxx  10xx xxxx
            char2=str.charCodeAt(i++);
            char3=str.charCodeAt(i++);
            out+=String.fromCharCode(((c&0x0F)<<12)|((char2&0x3F)<<6)|((char3&0x3F)<<0));
            break;
        }
    }
    return out;
}

8、日期時間

getDay函數:返回星期幾,值為0~6,其中0表示星期日,1表示星期一,...,6表示星期六。例: 

 代碼如下 複製代碼
function DateDemo() 

var d, day, x, s = "Today is: "; 
var x = new Array("Sunday", "Monday", "Tuesday"); 
var x = x.concat("Wednesday","Thursday", "Friday"); 
var x = x.concat("Saturday"); 
d = new Date(); 
day = d.getDay(); 
return(s += x[day]); 

(3)getHouse函數:返回日期的"小時"部分,值為0~23。例。 

 代碼如下 複製代碼
function TimeDemo() 

var d, s = "The current local time is: "; 
var c = ":"; 
d = new Date(); 
s += d.getHours() + c; 
s += d.getMinutes() + c; 
s += d.getSeconds() + c; 
s += d.getMilliseconds(); 
return(s); 

(4)getMinutes函數:返回日期的"分鐘"部分,值為0~59。見上例。 
(5)getMonth函數:返回日期的"月"部分,值為0~11。其中0表示1月,2表示3月,...,11表示12月。見前面的例子。 
(6)getSeconds函數:返回日期的"秒"部分,值為0~59。見前面的例子。 
(7)getTime函數:返回系統時間。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.