JavaScript处理null、undefined和空值

最近一直在写前端,在使用jquery的ajax请求然后处理返回值的时候,经常会遇到返回值为undefined或者"null"的情况,很是头疼,而返回接口是来自于其他公司的,所以这种情况必须交由前端来处理。然后想起来在Java中常用的StringUtil类,里面经常有isBlank()、isNullOrEmpty()等方法。后来想到,与其写一个返回true或者false的方法,不如直接写一个remove的方法,代码也很简单:

var Tools = {};

/**
 * 移除空字符串或者非法字符串,返回""
 * 如果是合法字符串,则返回原值
 * @param obj 文本
 */
Tools.removeNullOrUndefined = function (obj) {
    //typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"  
    if (typeof(obj) == "undefined" || obj == "" || obj == null || obj == "null" || obj.length == 0) {
        return "";
    } else {
        //删除全是空格的情况
        var regu = "^[ ]+$";
        var re = new RegExp(regu);
        if(re.test(obj)){
            return "";
        }else{
            return obj;
        }

    }
}

有了这个方法,在处理返回值的时候,套用这个函数,就可以避免在页面直接展示null或者undefined的尴尬。

同时,通过正则去除用户输入多个空格的判空情况。

PS:因为是js新手,所以代码没有考虑到性能,以后深入了再优化。

posted @ 2017-11-15 16:32  京大雄  阅读(4247)  评论(0编辑  收藏  举报