2020-02-25到京隔离第一天之js高级

数据类型

基本(值)类型

String

     任意的字符串

Number

 	 任意的数字

boolean

	true/false

undefined

	本身

null

  null

对象(值)类型

Object

	任意的对象

Function

	Function是一个特殊的object类型,使用typeof无法区分是Object还是Function,因为typeof 函数,返回的是一个Object 字符串

Array

  Array 也是一个特殊的Object类型,使用typeof 无法区分是Object还是具体的Array类型

怎么判断一个对象属于哪种数据类型呢?

方法1 使用typeof

方法2 使用 instanceof

方法3 使用 ===(全等,既判断数据类型,也判断值类型)

当然这三种方法有局限性。

判断一个对象的数据类型是否为undefined

1.使用typeof 关键字,返回的是一个数据类型字符串(全部小写)

  var a;//undefined
  console.log(typeof a);// 'undefined'  

所以可以通过 typeof a == ‘undefined’
进行判断一个对象是不是undefined类型
2.使用 全等符号(===)
因为全等符号即判断 数据类型是否相等,也判断值类型是否相等

      console.log(a === undefined)//true
数值、string、boolean类型使用typeof进行判断
   //数值类型
   a=3;
   console.log(typeof a === 'number');
   //String 类型
   a = 'xxxx';
   console.log(typeof a === 'string');
   //Boolean类型
   a = true;
   console.log(typeof a === 'boolean');
空类型的区分

当a=null的时候,无法使用typeof 进行判断,因为typeof a === ‘object’
空对象(也是一种对象)
使用 全等运算符 (===)

    a = null
    console.log(a===null);

对象类型

    var b1 = {
   		b2:[1,2,'abc',console.log],
   		b3:function(){
   			console.log('b3');
   			return function(){
   				return 'wp'
   			}
   		}
   }
   //其中 b1是一个对象
   //b2是一个数组
   //b3是一个函数
instanceof出场,使用在对象上
	console.log(b1 instanceof Object);//当然是true啦
	console.log(b1 instanceof Array);//false;b1不是Array的实例
    console.log(b1.b2 instanceof Array,b1.b2 instanceof Object);//数组是特殊的对象
	console.log(b1.b3 instanceof Function,b1.b3 instanceof Object);//函数一个一个特殊的对象

使用typeof 判断一个对象是不是function数据类型

	console.log(typeof b1.b3 === 'function')//true

总结

使用typeof 可以判断对象是不是 undefined、数值、字符串、boolean、function
   不能判断  null 和 object,object 和 array   因为typeof null或者array 都是 object类型
 ===可以判断undefined ,null
 因为这两种类型只有一个值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值