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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TDCQZD/article/details/81879203

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

  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
Boolean true/false typeof
undefined undefined typeof/===
null null ===

2、引用数据类型

数据类型 可用操作符
Object typeof/instanceof
Array instanceof
Function typeof/instanceof

猜你喜欢

转载自blog.csdn.net/TDCQZD/article/details/81879203
今日推荐