一、javaScript五種空值和假值
分別為undefined,null,false,"",0,這五個值的共同點是在執行if語句時都會執行false分支,執行對應的非語句的時候都執行true分支。
1、undefined:表明變量沒有初始化,即“未定義”;
2、null:js關鍵字,用於描述“空值”,表示數字、字符串、對象是“無值”的,typeof為object,但不具備對象實例的屬性與方法;
3、false、""、0:在if語句中表現為假值,但是他們都是有意義的數據,只是被用作空值或假值;
數據類型如下:
typeof(undefined) == 'undefined' typeof(null) == 'object' typeof("") == 'String' typeof(0) == 'number' typeof(false) == 'boolean'
二、數據是否為空的判斷
// var a = ""; // var a = " "; // var a = null; // var a = undefined; // var a = []; // var a = {}; // var a = NaN; if(a === undefined) { // 只能用 === 運算來測試某個值是否是未定義的 console.log("為undefined"); } if(a == null) { // 等同於 a === undefined || a === null console.log("為null"); } // String if(a == "" || a == null || a == undefined){ // "",null,undefined console.log("為空"); } if(!a){ // "",null,undefined,NaN console.log("為空"); } if(!$.trim(a)){ // "",null,undefined console.log("為空"); } // Array if(a.length == 0){ // "",[] console.log("為空"); } if(!a.length){ // "",[] console.log("為空"); } // Object {} if($.isEmptyObject(a)){ // 普通對象使用 for...in 判斷,有 key 即為 false console.log("為空"); }