typeof 运算符用来测试表达式的类型,其结果为一个表达式数据类型的字符串,如下表:
表达式值 |
返回结果 |
Undefined | undefined |
null | object |
Boolean | boolean |
Number | number |
String | string |
Object(没有实现[[Call]]属性的内建对象) | object |
Object(没有实现[[Call]]属性的内建对象) | function |
Object(host对象) | 由实现决定 |
ps:注意两个常量NaN和Infinity都是number.
instanceof 运算符用来检测表达式是否是制定类型的实例,如:
var mySite=new String("oseye.net"); alert(mySite instanceof String); // 返回true alert(mySite instanceof Object); // 返回true,Object是所有对象的基类。
delete 运算符是用来破坏对象的属性,使其处于未初始化的undefined状态,如果破坏成功返回true,否则返回false,如:
var site=new Object(); site.name="oseye.net"; var isDeleted=delete site.name; // 破坏name属性 alert(site.name); // 返回undefined alert(isDeleted); //返回true
delete不能破坏对象特有的属性,如数组的length属性。
void运算符用于计算表达式,然后放弃表达式的值,并返回undefined。
ps:顺带附上特殊的NaN,NaN解释引擎一般会将其表示为宜个随机的对象,所以NaN!=NaN,大小比较也为false.