表达式和运算符
1、in运算符
in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象。如果右侧的对象拥有一个名为左操作数值的属性名,那么表达式返回true。
var point={x:1,y:1}; //定义一个对象
"x" in point; // true:对象有一个名为"x"的属性
"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的元素
2、instanceof运算符
instanceof运算符希望左操作数是一个对象,右操作数标识对象的类。如果左侧的对象是右侧类的实例,则表达式返回true,否则返回false。
var d=new 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的实例。
3、其他运算符
(1)条件运算符(?:),唯一一个三元运算符
(2)typeof运算符,返回值为表示操作类型的一个字符串
(3)delete运算符,一元操作符,用于删除对象属性或者数组元素
(4)void运算符,一元运算符,操作数会照常计算,但忽略计算结果并返回undefined。
(5)逗号运算符(,)