JS認定的資料格式
JS跟大多數的語言一樣,都可以用if(data)的簡寫來判斷資料是否存在。
if判斷
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| let numArr = [0,1,'',null,undefined];
numArr.forEach(element => { if (element) console.log(element); })
let stringArr = ['a','B','',null,undefined];
stringArr.forEach(element => { if (element) console.log(element); })
let objArr = [{},{key:''},{key:null},{undefined}];
objArr.forEach(element => { if (element) console.log(element); })
let arrArr = [[],[''],[null],[undefined],[0],['',0]];
arrArr.forEach(element => { if (element) console.log(element); })
|
所以經過上面的驗證,可以得知JS的資料只要遇到下方這四種狀況,就為false,其他則為true
1. null
2. undefined
3. ''
4. 0
巢狀Object及Array則不能直接從最外面判斷,需要寫深度判斷。
typeof判斷
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| var a = 3; console.log(typeof a);
var b = "Hello"; console.log(typeof b);
var c = {}; console.log(typeof c);
var d = []; console.log(typeof d); console.log(Object.prototype.toString.call(d));
var e = false; console.log(typeof e);
function Person(name){ this.name = name; }
console.log(typeof Person);
var f = new Person("Jane"); console.log(typeof f);
console.log(typeof undefined); console.log(typeof null);
|
MDN條列了typeof可能的回傳值
來源:MDN