javascript高級程序設計 重讀系列

1.基本概念、數據類型、函數html

1.1 數據類型正則表達式

ECMAScript中有5種簡單數據類型:Undefind,Null,Boolean,Number,String數組

問題:判斷變量是不是空值的代碼函數

解析: 因爲ECMAScript的變量是鬆散類型的,所謂鬆散類型就是能夠保存任何類型的數據,可是用什麼手段來檢測變量的數據類型呢?彆着急,typeof就是負責這方面信息的操做:this

答案:spa

String.prototype.trim = function() { 
// 用正則表達式將先後空格 
//用空字符串替代。 
     return this.replace(/(^\s*)|(\s*$)/g, ""); 
};


var petter = {};
petter.empty = function(v) {
    switch(typeof v) {
        case 'undefind': 
            return true;
            break;
        case 'string':
            if(v.trim().length == 0) {
                return true;
                break;
            }
        case 'boolean': 
            if(!v) {
                return true;
            }
        case 'number': 
            if(0 === v) {
                return true;
                break;
            }
        case 'object': 
            if(null === v) {
                return true;
            }
            if(undefind !== v.length && v.length == 0) {
                return true;
            }
            for(var k in v) {
                return false;
            }
            return false;
            break;
    }
    return false;
};

判斷一個變量的類型用typeof是能夠的,可是在使用typeof運算符采用引用類型存儲值會出現問題,不管你引用的是什麼類型的對象,他都會返回「object」。ECMAScipt引入另外一個運算符instanceof來解決這個問題。prototype

問題: 判斷一個變量時數組Array的方法code

答案:htm

var arr = [1,2,3,1]; 
alert(arr instanceof Array); // true 

var arr = [1,2,3,1,5]; 
alert(arr.constructor === Array); // true
相關文章
相關標籤/搜索