1、相等运算符(==)和等同运算符(===)
两者均是用来检测两个值是否相等。它们接受任意类型的运算数,如果两个运算数相等,它们都返回true,否则返回false。相等运算符(==)采用较宽松(可以进行类型转化)的同一性定义检测,等同运算符(===)采用严格的同一性定义检测。
对于数字、字符串、布尔等基本数据类型,比较是否相等就是比较值是否相同。
对于对象、数组、函数等复杂数据类型,比较的是变量是否引用同一个对象。如果要比较它们的值是否相同,必须把属性一一拿出来比较。注意,如果是两个NaN,它们肯定不同,如果是两个null或两个undefined,它们完全相同。
2、不等运算符(!=)和不等同运算符(!==)
3、in运算符
判断in左边的值是否是in右边的值的一个属性名,返回true或false。如:
var a = {x: 1, y: 2};
var isX = "x" in a; //返回true
4、instanceof运算符
判断instanceof左边的值是否是instanceof运算符右边的值的一个对象,返回true或false。如:
var array = [1,2,3];
var isArray = array instanceof Array; //返回true
5、typeof运算符
获取typeof左边的值的数据类型
(1)为数字,返回number
(2)为字符串,返回string
(3)为布尔值,返回boolean
(4)为对象、数字、null、包装对象、Date、RegExp等对象时,返回object
(5)为函数,返回function
(6)为未定义,返回undefined
6、delete运算符
删除指定的对象属性、数组元素或变量。