type of 与 instance of的区别

文章探讨了JavaScript中`instanceof`和`typeof`两个操作符的相似点和不同点。`typeof`返回变量的六种基础类型,而`instanceof`用于检查一个对象是否是另一个对象的实例。特别地,`typeof`无法准确判断数组,总是返回`object`,而`instanceof`能用于识别数组。

相同点:instance of和 type of 都是类型的判断

不同点:

type of:type of test 会直接返回test的类型数据,返回数据类型必为以下的6个之一:undefined, number, string, boolean.object,function

instance of: test1 instance of test2 是用来判断test1是不是属于test2的实例的,返回值王诶true or false

判断是不是数组:type of在判断 数组、对象、null时得到的结果都是object,不能判断该值是否为数组;

instance of可以判断是否为数组

`typeof`和`instanceof`都是判断数据类型的方法,它们的区别如下: - **返回值类型**:`typeof`会返回一个变量的基本类型,返回值有`number`、`string`、`boolean`、`function`、`undefined`、`object`六个;而`instanceof`返回的是一个布尔值,用于判断对象是否是某个构造函数的实例[^1][^3]。 - **判断能力**:`typeof`可以判断基础数据类型(`null`除外),但是在引用数据类型中,除了`function`类型以外,其他的无法准确判断,例如`typeof null`返回`object` ,`typeof []`也返回`object`;`instanceof`可以准确地判断复杂引用数据类型,但是不能正确判断基础数据类型,例如`'foo' instanceof String`返回`false`,而`new String('foo') instanceof String`返回`true` [^1][^2][^3]。 以下是代码示例: ```javascript // typeof示例 console.log(typeof 123); // 输出: "number" console.log(typeof "hello"); // 输出: "string" console.log(typeof true); // 输出: "boolean" console.log(typeof function(){}); // 输出: "function" console.log(typeof undefined); // 输出: "undefined" console.log(typeof null); // 输出: "object" console.log(typeof []); // 输出: "object" // instanceof示例 function Person() {} const person = new Person(); console.log(person instanceof Person); // 输出: true console.log([] instanceof Array); // 输出: true console.log({} instanceof Object); // 输出: true console.log('text' instanceof String); // 输出: false ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值