JavaScript语法之数据类型判断操作符 typeof&instanceof

一、使用数据前要做哪些工作?为什么?

  1. 对数据类型进行判断
  2. 判断的目的是分类
  3. 分类是为了明确当前类型的功能然后确定如何使用

二、typeof 运算符

1、基本语法

 typeof  a 
        or
    typeof (a)

2、typeof数据类型结果描述

类型结果
Undefined“undefined”
Null“object”
Boolean“boolean”
Number“number”
String“string”
Symbol (ECMAScript 6 新增)“symbol”
函数对象“function”
任何其他对象“object”

3、使用细节和注意事项

1)typeof运算符返回的数据类型本身是字符串.

2)返回七种数据类型:

String, Number, Boolean, Undefined, Object, Function ,symbol(ES6)

3)可以区别数据类型:

数值, 字符串, 布尔值, undefined, function, symbol

4)无法区分:null与对象, 一般对象与数组

    typeof null === "object"; // true

正确的返回结果应该是 “null” ,但这个 bug 由来已久,在 javascript 中已经存在了将近二十年,也许永远也不会修复,因为这牵涉到太多的 Web 系统,修复它会产生更多的 bug,会令许多系统无法正常工作。

5)在对变量执行 typeof 操作时,得到的结果并不是该变量的类型,而是该变量持有的值的类型,因为 JavaScript 中的变量没有类型。

三、instanceof运算符

1、基本介绍:

  1. 专门用来判断对象数据的类型: Object, Array与Function
    console.log(arr instanceof Array) // true
  2. === 全等运算符
console.log(undefined == null); // true
console.log(undefined === null); // false

2、instanceof是如何判断的?

instanceof的规则如下:
表达式: A instanceof B
如果B函数的显式原型对象在A对象的原型链上, 返回true, 否则返回false

3、示例代码:

<script type="text/javascript">
  //案例1
function Foo() {  }
var f1 = new Foo();
console.log(f1 instanceof Foo); // true
console.log(f1 instanceof Object);  // true

//案例2
console.log(Object instanceof Function)  // true
console.log(Object instanceof Object)  // true
console.log(Function instanceof Object)  // true
console.log(Function instanceof Function)  // true
function Foo() {} 
console.log(Object instanceof  Foo); // false

</script>

四、typeof&instanceof可使用数据类型说明

1、基本数据类型

数据类型可用操作符
Number任意数值typeof
String任意字符串typeof
Booleantrue/falsetypeof
undefinedundefinedtypeof/===
nullnull===

2、引用数据类型

数据类型可用操作符
Objecttypeof/instanceof
Arrayinstanceof
Functiontypeof/instanceof
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值