1. 程式人生 > >[Javascript] 怎麼判斷變數是否不為空

[Javascript] 怎麼判斷變數是否不為空

一. 實驗if(a)

if(a) {
    alert('yes');
} else {
    alert('no');
}
  1. a 未宣告,結果:報錯 a is not defined
  2. var a; 宣告未賦值, 結果:no
  3. var a = []; 結果:yes
  4. var a= {}; 結果:yes
  5. var a = 0; 結果:no; var a = 1;結果:yes
  6. var a = “”;結果:no
  7. var a = null;結果:no
  8. var a= undefined; 結果:no

二. 實驗if(typeof a != ‘undefined’)

if(typeof a != 'undefined'
) { alert('yes'); } else { alert('no'); }

typeof a, typeof是操作符不是函式,若a未定義或未賦初值為’undefined’, 否則為’boolean’, ‘string’,’number’,’object’,’function’。

  1. a 未宣告,結果:no
  2. var a; 宣告未賦值, 結果:no
  3. var a = []; 結果:yes (object)
  4. var a= {}; 結果:yes(object)
  5. var a = 0; 結果:yes(number)
  6. var a = “”;結果:yes(string)
  7. var a = null;結果:yes(object)
  8. var a= undefined; 結果:no

三. 總結

用以下方法判斷變數是否不為空
若a未宣告if(a)報錯,因此需要先typeof(a)
* 非陣列
if (typeof a != “undefined” && a) {
….
}
* 陣列
if (typeof a != “undefined” && a && a.length > 0) {
….
}