当前位置:首页 > 经验

js判断不等于null和空对象 js判断不为空不为0

js中常用的数据类型有:

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。

引用数据类型:对象(Object)、数组(Array)、函数(Function)。

就以上数据类型先举几个例子:

// 字符串(String)
let a='word';
// 数字(Number)
let b=123;
// 布尔(Boolean)
let c=true;
// 对空(Null)
let d=null;
// 未定义(Undefined)
let e;
// Symbol
let f=Symbol('123');
// 对象(Object)
let g={name:'xiangming'};
// 数组(Array)
let h=[1,2,3,4,5];
// 函数(Function)
let i=function () {
  return 'done';
};

1、最常见的判断方法:typeof

console.log('a:'+typeof a);  	
// a:string
console.log('b:'+typeof b); 
// b:number
console.log('c:'+typeof c); 	
// c:boolean
console.log('d:'+typeof d);  
// d:object
console.log('e:'+typeof e);  
// e:undefined
console.log('f:'+typeof f);  		
// f:symbol
console.log('g:'+typeof g);  
// g:object
console.log('h:'+typeof h);  
// h:object
console.log('i:'+typeof i);  		
// i:function

所以,typeof 在判断除Object类型的对象时比较方便。

2、判断已知对象类型的方法:instanceof

console.log('a is string:'+a instanceof String);
// a is string:true
console.log('b is number:'+b instanceof Number);
// b is number:true
console.log('b is number:'+b instanceof number);
// Uncaught ReferenceError: number is not defined

注意:instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。

3、通用但很繁琐的方法:prototype(推荐)

// 定义方法获取变量类型
function var_type(data) {
  return Object.prototype.toString.call(data).replace(/^\[object\s(.+)\]$/, '$1').toLowerCase();
}
console.log('a:'+var_type(a));
// a:string
console.log('b:'+var_type(b));
// b:number
console.log('c:'+var_type(c));
// c:boolean
console.log('d:'+var_type(d));
// d:null
console.log('e:'+var_type(e));
// e:undefined
console.log('f:'+var_type(f));
// f:symbol
console.log('g:'+var_type(g));
// g:object
console.log('h:'+var_type(h));
// h:array
console.log('i:'+var_type(i));
// i:function

此方法虽稍显繁琐,但只需简单封装一个方法即可。

文章最后给大家推荐一个小编自己写的通用后台框架云静Admin通用后台,小编也是第一次尝试开源代码,还望大家不吝赐教。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章