javascript高级程序设计 重读系列

1.基本概念、数据类型、函数

1.1 数据类型

ECMAScript中有5种简单数据类型:Undefind,Null,Boolean,Number,String

问题:判断变量是否是空值的代码

解析: 由于ECMAScript的变量是松散类型的,所谓松散类型就是可以保存任何类型的数据,但是用什么手段来检测变量的数据类型呢?别着急,typeof就是负责这方面信息的操作:

答案:

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来解决这个问题。

问题: 判断一个变量时数组Array的方法

答案:

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

var arr = [1,2,3,1,5]; 
alert(arr.constructor === Array); // true
posted @ 2015-01-29 15:19  追梦的超哥  阅读(162)  评论(0编辑  收藏  举报