zoukankan      html  css  js  c++  java
  • 《JS权威指南学习总结--4.9.3in和instanceof运算符》

    内容要点:

         一.in运算符

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

               例如:

               var point=["x":1,"y":2];

               var a="x" in point; //true:对象里有一个名为"x"的属性

               var b=z in point;     //false:对象里不存在名为"z"的属性

               "toString" in point  //true:对象继承了toString()方法

               var data=[7,8,9]; 

               "0" in data //true:数组包含元素"0"

               1 in data //true:数组转换为字符串

               3 in data  //false:没有索引为3的元素

        二.instanceof运算符

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

               例如:

               var d=new Date();     //通过Date()构造函数来创建一个新对象。

              d instanceof Date;      //计算结果为true,d是由Date()创建的

              d instanceof Object;    //计算结果为true,所有的对象都是Object的实例。

              d instanceof Number;  //计算结果为false,d不是一个Number对象

              var a=[1,2,3];       //通过数组直接量的写法创建一个数组。

             a instanceof Array; //计算结果为true,a是一个数组。

             a instanceof Object; //计算结果为true,所有的数组都是对象。

             a instanceof RegExp ; //计算结果为false,数组不是正则表达式。

            需要注意的是:所有的对象都是Object的实例。当通过instanceof判断一个对象是否是一个类的实例的时候,这个判断也会包含对"父类" 检测。

            如果右操作数不是函数,则抛出一个类型错误异常。

             

             

     

  • 相关阅读:
    经典回溯问题- 迷宫
    关于二叉树的一点补充。
    二叉树重难点总结(判断完全二叉树,非递归前、中、后序遍历的实现等...)
    栈、队列常规操作
    贪吃蛇小游戏
    链表重点问题(下)
    链表常见问题(上)
    动态顺序表
    时间 空间复杂度小结(斐波那契 二分查找举例)
    每天一个linux命令-id,输出用户的uid、gid
  • 原文地址:https://www.cnblogs.com/hanxuming/p/5777712.html
Copyright © 2011-2022 走看看