读书人

JavaScript中非一般的运算符(in,dele

发布时间: 2012-10-08 19:54:56 作者: rapoo

JavaScript中特殊的运算符(in,delete,typeof,instanceof,逗号,void)
JavaScript中特殊的运算符(in,delete,typeof,instanceof,逗号,void)2010-12-22 18:04

JavaScript中一些特殊的运算符:

(1)???in运算符

??????????????? in运算符要求其左边的运算数是一个字符串,或可以被转换为字符串,右边的运算数十一个对象或数组。如果该

????????运算符左边的值是右边对象的一个属性名,则返回true,否则返回为false

??????????????? eg: var point={x:1,y:1};

???????????? ???var has_x=”x” ?in ?point;//true

??????????????? ?var has_y=”y” ?in??point;//true

?????????????? ??var has_y=”z”??in??point;//false

???????? ????? ??var has_toString=”toString” in point;//true因为这是对象继承的属性

(2)???instanceof运算符

??????????????? instanceof运算符要求其左边的运算数是一个对象,右边的运算数是对象类的名字,如果该运算符左边的对象是

????????右边类的一个实例,则返回true,否则返回false。

?????????????? eg:var d=new Date();

??????????????????????? var type1=d instanceof Date; //true

?????????????????????? var type2=d instanceof Object;//true

?????????????????????? var type3=d instanceof Number;//false

?????????????????????? var a=[1,2,3];

?????????????????????? ?var type4=a instanceof Array;//true

????????????????????????var type5=a instanceof Object;//true

????????????????????? ?var type6=a instanceof RegExp;//fasle

(3)???typeof运算符

??????????????typeof是一个一元运算符,放在一个运算数之前,这个运算数可以是任意类型的。它的返回值是一个字符串,该字

?????? 符串说明了运算数的类型通常typeof返回的类型如下:

?????????????? number,string,boolean,object,function,undefined

???????????????typeof可以将运算数括起来,类似一个函数的用法

????????????????eg: var i=0;

???????????????????????var type1=typeof(i);//number

??????????????????? ???var j=”hello ali!”;

?????????????????????? var type2=typeof j;//string

??????????????? PS:??typeof的局限性在于对于Array,null等特殊的对象使用typeof返回的都是object,而不能详细的去区分,这时候

?????????? 就要用到instanceof了,但是前提必须能够使用instanceof运算符

(4)???delete运算符

??????????????delete运算符是一个一元运算符,它将删除运算数所指定的对象的属性,数组元素或者变量。如果删除成功,将返

???????回true,如果运算数不能被删除,将返回false。并且并非所有的属性和变量都是可以删除的,某些内部的核心属性

?????? 和客户端属性不能删除,并且用var语句申明的用户定义变量也不能被删除。如果delete使用的的运算数是一个不

?????? 存在的属性,它也将返回为true(令人吃惊的是,ECMAScript标准规定,当delete运算的运算数不是属性、数组或变

?????? 量的时候,它也会返回true)

?????????????? eg:??var o={x:1,y:2};

???????????????????? ?delete o.x;//true

?????????????????? ???typeof o.x;//undefined

????????????????????? delete o.x;//true

????????????????????? delete o;//false

????????????????????? delete 1;//true

???????????????????????x=1;

???????????????????? delete x;//true

(5)???void运算符

??????????????void是一个一元运算符,它可以出现在任何类型操作数之前。这个运算符的用途比较特殊,它总是舍弃运算数的

?????? 值,然后返回undefined。这种运算符常用在客户端的javascript:URL中,在这里可以计算表达式的值,而浏览器

?????? 不会显示出这个值。void的另外一个用处是专门生成undefined值

??????????????eg: <a href=”javascript: void window.open();”>Open New Window</a>

(6)???逗号运算符

???????逗号运算符非常简单,它先计算左边的参数,在计算其右边的参数,然后返回右边参数的值。

?????????????? eg:??i=0, j=1, k=2;

?????????? 等价于

???????????????????????? i=0;

???????????????????????? j=1;

???????????????????????? k=2;

?

?

读书人网 >JavaScript

热点推荐