[Javascript] 怎麼判斷變數是否不為空
阿新 • • 發佈:2019-02-06
一. 實驗if(a)
if(a) {
alert('yes');
} else {
alert('no');
}
- a 未宣告,結果:報錯 a is not defined
- var a; 宣告未賦值, 結果:no
- var a = []; 結果:yes
- var a= {}; 結果:yes
- var a = 0; 結果:no; var a = 1;結果:yes
- var a = “”;結果:no
- var a = null;結果:no
- 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’。
- a 未宣告,結果:no
- var a; 宣告未賦值, 結果:no
- var a = []; 結果:yes (object)
- var a= {}; 結果:yes(object)
- var a = 0; 結果:yes(number)
- var a = “”;結果:yes(string)
- var a = null;結果:yes(object)
- var a= undefined; 結果:no
三. 總結
用以下方法判斷變數是否不為空
若a未宣告if(a)報錯,因此需要先typeof(a)
* 非陣列
if (typeof a != “undefined” && a) {
….
}
* 陣列
if (typeof a != “undefined” && a && a.length > 0) {
….
}