js 中的 instanceof与typeof区别

今日用到js类型判断,网上看了一些文章,对它们之间的关系有了一定的了解。然后记录了下来:

instanceof和typeof都能用来判断一个变量是否为空或是什么类型的变量。

typeof用以获取一个变量的类型,typeof一般只能返回如下几个结果:number,boolean,string,function,object,undefined。我们可以使用typeof来获取一个变量是否存在,如if(typeof a!="undefined"){},而不要去使用if(a)因为如果a不存在(未声明)则会出错,对于Array,Null等特殊对象使用typeof 一律返回object,这正是typeof的局限性。

如果我们希望获取一个对象是否是数组,或判断某个变量是否是某个对象的实例则要选择使用instanceof。instanceof用于判断一个变量是否某个对象的实例,如var a=new Array();alert(a instanceof Array);会返回true,同时alert(a instanceof Object)也会返回true;这是因为Array是object的子类。再如:function test(){};var a=new test();alert(a instanceof test)会返回true。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在JavaScript,`instanceof`和`typeof`是两个常用的操作符,用于检查变量的类型。它们的用法如下: 1. `instanceof`操作符用于检查一个对象是否是某个类的实例。语法如下: ```javascript obj instanceof Class ``` 这里,`obj`是要检查的对象,`Class`是要检查的类。如果`obj`是`Class`的实例或者是其子类的实例,则返回`true`,否则返回`false`。 示例: ```javascript class Person {} const person = new Person(); console.log(person instanceof Person); // true console.log(person instanceof Object); // true,因为所有对象都是Object的实例 ``` 2. `typeof`操作符用于确定一个值的数据类型。语法如下: ```javascript typeof value ``` 这里,`value`是要检查的值。返回值为一个表示数据类型的字符串,可能的取值包括: - `'undefined'`:未定义的变量或属性 - `'boolean'`:布尔值 - `'number'`:数值 - `'string'`:字符串 - `'symbol'`:符号值(ES6新增) - `'function'`:函数 - `'object'`:对象(包括数组、null等) 示例: ```javascript console.log(typeof undefined); // 'undefined' console.log(typeof true); // 'boolean' console.log(typeof 42); // 'number' console.log(typeof 'hello'); // 'string' console.log(typeof Symbol('symbol')); // 'symbol' console.log(typeof function() {}); // 'function' console.log(typeof {}); // 'object' console.log(typeof []); // 'object' console.log(typeof null); // 'object',注意这里的历史遗留问题 ``` 希望以上解释对你有帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值