麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

Js判斷參數(String,Array,Object)是否為undefined或者值為空

2019-11-20 21:47:51
字體:
來源:轉載
供稿:網友

有時候我們會遇到這樣的情況:在一些前端控件要提交數據到服務器端的數據驗證過程中,需要判斷提交的數據是否為空。如果是普通表單的字符串數據,只需要在 trim 后判斷 length 即可,而這里需要的數據可以是各種不同的類型(數字、字符串、數組、對象等等),通過 JSON.stringify(data) 進行序列化后再傳遞。

在這里定義如下的數據值為“空值”:

•undefined
•null
•空字符串及純空白字符串:''、'    ' 等。
•空數組:[]
•空對象:{}

對于除此以外的數據值,均認為不為空。

其中 null 和 undefined 很容易識別,但對于其他類型,我們須要得到其數據類型才能用相應的方法去檢測數據是否為空。最容易想到的方法就是利用typeof 操作符:

復制代碼 代碼如下:

<SPAN style="BACKGROUND-COLOR: rgb(255,255,255)">if(typeof data === 'number') {
  //deal with numbers
}</SPAN>

但 typeof 返回的類型字符串只有 'object'、'function'、'number'、'boolean'、'string'、'undefined' 這六種,很多原生對象如 Date、RegExp 對象無法與用 {} 創建的對象進行區分。另外,typeof 對于一些基本數據類型如 (String、Number、Boolean) 與其對應的基本包裝類型數據會分別返回不同值,如:
復制代碼 代碼如下:

<SPAN style="BACKGROUND-COLOR: rgb(255,255,255)">console.log(typeof false); //'boolean'
console.log(typeof new Boolean(false)); //'object'
console.log(typeof 1); //'number'
console.log(typeof new Number(1)); //'object'
console.log(typeof ''); //'string'
console.log(typeof new String('')); //'object'</SPAN>

這對我們的判斷也有一定的影響。

用 instanceof?這只能判斷對象,而且存在多 frame 時多個同類對象不共享 prototype 的問題,從其他 frame 中取得的對象無法正確判斷。

還好,還有一個最簡單也最可靠的方法:Object.prototype.toString。對于不同類型的數據,這個方法可以返回 '[object Object]'、'[object Array]'、'[object String]' 這樣的字符串,非常方便判斷。需要注意的是,在 IE8 及其以下瀏覽器中,這個方法對于null、undefined、window 等都會返回 '[object Object]',不過還好,這并不影響我們使用它判斷空對象。

下面直接上代碼,說明就看注釋吧。

復制代碼 代碼如下:

var isEmptyValue = function(value) {

            var type;
            if(value == null) { // 等同于 value === undefined || value === null
                return true;
            }
            type = Object.prototype.toString.call(value).slice(8, -1);
            switch(type) {
            case 'String':
                return !$.trim(value);
            case 'Array':
                return !value.length;
            case 'Object':
                return $.isEmptyObject(value); // 普通對象使用 for...in 判斷,有 key 即為 false
            default:
                return false; // 其他對象均視作非空
            }
        };

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄在线 | 九色中文字幕 | 污视频在线免费 | 亚洲第一激情 | 国内精品久久久久久久久久 | 黄色一级片在线免费观看 | 亚洲视频综合 | 中文字幕亚洲一区二区三区 | 成人在线视频免费 | 日本a在线观看 | 亚州综合图片 | 亚洲成人免费视频在线 | 中文字幕欧美日韩 | 欧美精品成人一区二区三区四区 | 国产精品影视 | 久久国产精品久久久久久久久久 | 国产精品久久久免费看 | 免费国产wwwwwww网站 | tube7xxx| 久久精品国产99国产精品澳门 | 国产一区毛片 | 4p嗯啊巨肉寝室调教男男视频 | 一级做受毛片免费大片 | 91丝袜| 999久久国精品免费观看网站 | 日韩精品久久久久久久电影99爱 | 国产一区二区在线免费播放 | 高清在线观看av | 久久久久久久久久美女 | 一级黄色毛片免费 | 91看片免费版 | 爱看久久 | 国产免费久久久久 | 国产一区二区午夜 | 成人午夜在线观看视频 | 国产69精品久久久久久野外 | 视频在线中文字幕 | 国产精品久久久久久久四虎电影 | 精品国产91久久久 | 7777欧美| 销魂美女一区二区 |