js检测数据或变量的类型

数据类型检测获取你认为并不常用,但是js的数据类型检测相反是可以常用的,大脑储存的东西越多你的思路就越宽广,加油吧,骚年。

1.首先我们先声明一些基础类型的变量并赋值:

			let a = [1,2,3];
			let b = {};
			let c = true;
			let d = 0;
			let e = '0';
			let f = null;
			let g = undefined;
			let h = function(){}
			let i = Symbol()

 

2.使用typeof检测数据类型:

			console.log('-----------typeof判断类型------------')
			console.log('数组',typeof(a))
			console.log('对象',typeof(b))
			console.log('布尔',typeof(c))
			console.log('数值',typeof(d))
			console.log('字符串',typeof(e))
			console.log('null',typeof(f))
			console.log('undefined',typeof(g))
			console.log('函数',typeof(h))
			console.log('唯一类型',typeof(i))

 

看下输出:


 

 

我们发现数组与null返回的类型并不对,但其他没有问题,可以简单实用

 

3.使用toString检测数据类型(完美)

			console.log('-----------toString判断类型------------')
			console.log('数组',toString.call(a))
			console.log('对象',toString.call(b))
			console.log('布尔',toString.call(c))
			console.log('数值',toString.call(d))
			console.log('字符串',toString.call(e))
			console.log('null',toString.call(f))
			console.log('undefined',toString.call(g))
			console.log('函数',toString.call(h))
			console.log('唯一类型',toString.call(i))

查看返回结果:


 

 

看着像数组呢,直接忽视第一个object,返回的也并不是一个数组,而是一个字符串;

 

4.类型拿到了,如何判断?

			// 那如何判断变量e是不是字符串
			if(toString.call(e).indexOf('String')>=0){
				console.log('条件成立,e是字符串')
			}

 

ok,到此结束!!!!

 

完整demo:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			let a = [1,2,3];
			let b = {};
			let c = true;
			let d = 0;
			let e = '0';
			let f = null;
			let g = undefined;
			let h = function(){}
			let i = Symbol()
			
			console.log('-----------typeof判断类型------------')
			console.log('数组',typeof(a))
			console.log('对象',typeof(b))
			console.log('布尔',typeof(c))
			console.log('数值',typeof(d))
			console.log('字符串',typeof(e))
			console.log('null',typeof(f))
			console.log('undefined',typeof(g))
			console.log('函数',typeof(h))
			console.log('唯一类型',typeof(i))
			
			console.log('-----------toString判断类型------------')
			console.log('数组',toString.call(a))
			console.log('对象',toString.call(b))
			console.log('布尔',toString.call(c))
			console.log('数值',toString.call(d))
			console.log('字符串',toString.call(e))
			console.log('null',toString.call(f))
			console.log('undefined',toString.call(g))
			console.log('函数',toString.call(h))
			console.log('唯一类型',toString.call(i))
			
			console.log('------看下toString返回什么类型-------')
			let toStringType = toString.call(a);
			console.log(toString.call(toStringType))//返回的为字符串
			
			// 那如何判断变量e是不是字符串
			if(toString.call(e).indexOf('String')>=0){
				console.log('条件成立,e是字符串')
			}
		</script>
	</body>
</html>
 
效果:


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.duanlonglong.com/qdjy/1202.html