js的in运算符与instanceof运算符

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

var point= {x:1,y:3};      //  定义一个对象
"x" in point;      //   返回为true;对象有一个名为x的属性
"z" in point;      //   返回为false;对象没有名为z的属性
"toString" in point  //   返回true,对象继承了toString方法


var arr = [1,2,3];    //   拥有三个元素的数组
"0" in arr;     //   true:数组包含元素0
1 in arr;      //   true:数字转换为字符串
3  in arr;    //   false:没有索引为3的元素

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

var da = new Data()     //   初始化一个对象
da instanceof Data;      //  true:da是Data类创建的
daa  instanceof  Number;    //   false:daa不是Data类创建的
da  instanceof  Object;    //   true:因为所有的类都是继承自Object

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。