const char*和char*的区别_typeof运算符和instanceof运算符以及isPrototypeOf()方法的区别 - 小名香菜~

  typeof是一个运算符,用于检测数据的类型,比如基本数据类型null、undefined、string、number、boolean,以及引用数据类型object、function,但是对于正则表达式、日期、数组这些引用数据类型,它会全部识别为object;

  语法:typeof operand   typeof(operand)  参数:operand(一个表示对象或原始值的表达式,其类型将被返回)

(typeof 42);
// expected output: "number"
(typeof 'blubber');
// expected output: "string"
(typeoftrue);
// expected output: "boolean"
(typeof undeclaredVariable);
// expected output: "undefined"

下表总结了 typeof 可能的返回值。

5f7e77cf41d711100669004320c80c71.png

  instanceof同样也是一个运算符,它就能很好识别数据具体是哪一种引用类型。它与isPrototypeOf的区别就是它是用来检测构造函数的原型是否存在于指定对象的原型链当中;

function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;
}
const auto = new Car('Honda', 'Accord', 1998);

(auto instanceof Car);
// expected output: true
(auto instanceof Object);
// expected output: true

  语法 :object instanceof constructor 【参数 object (某个实例对象);constructor(某个构造函数)】

  isPrototypeOf是用来检测调用此方法的对象是否存在于指定对象的原型链中,所以本质上就是检测目标不同。

function object1() {}
function object2() {}

object1.prototype = Object.create();

const object3 = new object1();

((object3));
// expected output: true
(.isPrototypeOf(object3));
// expected output: true

  isPrototypeOf()instanceof运算符不同。在表达式“ object instanceof AFunction”中,对object原型链进行检查,而不是对AFunction自身进行检查。

  句法:prototypeObj.isPrototypeOf(object) [参量:object(将搜索其原型链的对象).返回值:Boolean指示是否调用对象在于指定的对象的原型链.抛出错误:TypeError(TypeError如果prototypeObj未定义或为null,则抛出A)]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值