美文网首页
3.4 in运算符

3.4 in运算符

作者: 柠檬与断章 | 来源:发表于2019-11-18 15:36 被阅读0次

    3.4 in运算符
    问题一:in运算符

    in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象。
    如果右侧的对象拥有一个名为左操作数值的属性名,那么表达式返回true

    问题一:in运算符具体用法

    1、如果第二个运算数为对象,则in运算符用来检测第一个运算数是否是第二个运算数的属性名。是,返回true,否则返回false。

    例:

    var obj = {x:1,y:2};

    “x” in obj // 返回true

    “y” in obj // 返回true

    “1” in obj // 返回false

    2、如果第二个运算数为数组,则in运算符用来检测第一个运算数是否为数组包含的索引之一。

    例:

    var arr = [12,45,78];

    12 in arr // 返回false

    45 in arr // 返回false

    78 in arr // 返回false

    0 in arr // 返回true

    2 in arr // 返回true

    3.5 instanceof运算符
    问题一:instanceo运算符

    instanceof运算符希望他的左操作数是一个对象,右操作数是标识对象的类,如果左侧的对象是右侧类的实例,侧返回true,不是返回false。

    var da = new Data() // 初始化一个对象
    da instanceof Data; // true:da是Data类创建的
    da instanceof Number; // false:da不是一个Number对象
    da instanceof Object; // true:因为所有的类都是继承自Object
    var a = new Data() // 创建一个数组
    a instanceof Array; // true:a是一个数组
    a instanceof Object; // ftrue:因为所有的数组都是Object
    a instanceof RegExp; // false:数组不是正则表达式
    问题二:instanceof工作原理

    首先了解“原型链”(prototype)。原型链作为JavaScript的继承机制。
    为了计算表达式o instanceof f,JavaScript首先计算f.prototype,然后在原型链中查找o,如果找到,那么o是f(或者f的父类)的一个实例,表达式返回true。如果f.prototype不在o的原型链中的话,那么o就不是f的实例,instanceof 返回false

    相关文章

      网友评论

          本文标题:3.4 in运算符

          本文链接:https://www.haomeiwen.com/subject/atufictx.html