Javascript中的运算符与C/C++中的运算符相似,但有几处不同的地方,相对于C/C++,也增加了几个不同的运算符,包括in,instanceof,typeof,delete. 需要熟悉一下.
2.1 in运算符
in运算符要求左边的运算数是一个字符串,或者可以被转换为字符串,右边的运算数是一个对象或数组.
如果运算符左边的值是右边对象的一个属性名,返回为true.
1
var
point
=
{x:1,y:1}
2
var
has_x_coord
=
“x”
in
point;
//
true
3
var
has_y_coord
=
“y”
in
point;
//
true
4
var
has_z_coord
=
“z”
in
point;
//
false
5
var
ts
=
“toString”
in
point;
//
继承自object属性,true;
2.2 instanceof运算符
instance 运算符要求左边的运算数是一个对象,右边的运算数是对象类的名字.
如果运算符左边的对象是右边类的一个实例,它返回true,否则返回false.
1
var
d
=
new
Date();
2
d
instanceof
Date;
//
true
3
d
instanceof
Object;
//
true
4
d
instanceof
Number;
//
false
5
var
a
=
[
1
,
2
,
3
];
6
a
instanceof
Array;
//
true
7
a
instanceof
RegExp;
//
false
2.3 typeof运算符
typeof运算符是一元运算符,运算数任意类型.它的返回值是一个字符串,返回值说明了运算数的类型.
如果运算数是数字、字符串或布尔值,其返回的结果就是“number”,“string”,“boolean”。对于对象、数组和null,它返回的是“object”。
对于函数,它返回的是“function”,如果运算数是未定的,返回的是“Undefined”。
2.4 delete运算符
delete运算符不是用来删除对象,清除对象内存所用的.
它是删除运算符指定对象的属性,数组元素或变量.
删除成功,它返回true
1
var
o
=
{x:1,y:2}
2
delete
o.x;
//
return true;
3
delete
o.y;
//
return true;
4
delete
o.x;
//
删除一个已经不存在的元素(已经被删),返回true
5
delete
o;
//
不能删除,return false