JavaScript的大部分运算符是用标点符号表示的,诸如“+”和“=”,但是有些运算符则是由关键字表示的,如delete和instanceof。下表列出JavaScript所特有的运算符:
运算符 |
in |
instanceof |
typeof |
new |
delete |
void |
in:in要求其左边的运算数是一个字符串,或可以被转换为字符串,右边的运算数是一个对象或数组。如果该运算符左边的值是右边对象的一个属性名,它返回true。
var point={x:1,y:1};
var has_x_coord="x" in point;
instanceof:instanceof要求其左边的运算数是一个对象,右边的运算数是对象类的名字。如果该运算符左边的对象是右边类的一个实例,它返回true,否则返回false。
var d=new Date();
d instanceof Date;
typeof:放在一个运算数之前,运算数可以是任意类型的。返回值是一个字符串,该字符串说明了运算数的类型。如果typeof的运算数是数字、字符串或者布尔值,它返回的结果是"number","string",“boolean”。对对象、数组和null,它返回的是“Object”。对函数运算数,它返回的是“function”。如果运算数是未定义的,它将返回“undefined”。当typeof的运算数是Number,String,Boolean这样的包装对象时,它返回的是“Object”。此外对Date和RegExp对象,它也返回“Object”。
new:new用来创建一个新对象,并调用构造函数初始化它。
delete:它将删除运算数所指定对象的属性、数组元素或变量。如果删除操作成功,它返回true,如果失败,返回false。并非所有的属性和变量都是可以删除的,某些内部的核心属性和客户端属性不能删除,用var语句声明的用户定义变量也不能删除。如果delete使用的运算数是一个不存在的属性,它将返回true。
void:可以出现在任何类型操作数之前。void比较特殊,它总是舍弃运算数的值,然后返回undefined。这种运算符常用在客户端的javascript:url中,在这里可以计算表达式的值,而浏览器不会显示出这个值。例如:
<html>
<head>
</head>
<body>
<a href="javascript:void window.open();">open window</a>
</body>
</html>
void的另一个用途是专门生成undefined值。