JavaScript规范文档.docx

上传人:b****6 文档编号:5608092 上传时间:2022-12-29 格式:DOCX 页数:30 大小:30.70KB
下载 相关 举报
JavaScript规范文档.docx_第1页
第1页 / 共30页
JavaScript规范文档.docx_第2页
第2页 / 共30页
JavaScript规范文档.docx_第3页
第3页 / 共30页
JavaScript规范文档.docx_第4页
第4页 / 共30页
JavaScript规范文档.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

JavaScript规范文档.docx

《JavaScript规范文档.docx》由会员分享,可在线阅读,更多相关《JavaScript规范文档.docx(30页珍藏版)》请在冰豆网上搜索。

JavaScript规范文档.docx

JavaScript规范文档

dick2010-02-05整理

JavaScript操作符

操作符分类

操作符

描述

+

(加法)将两个数相加。

++

(自增)将表示数值的变量加一(可以返回新值或旧值)。

-

(求相反数,减法)作为求相反数操作符时返回参数的相反数。

作为二进制操作符时,将两个数相减。

--

(自减)将表示数值的变量减一(可以返回新值或旧值)。

*

(乘法)将两个数相乘。

/

(除法)将两个数相除。

%

(求余)求两个数相除的余数。

字符串操作符

+

(字符串加法)连接两个字符串。

+=

连接两个字符串,并将结果赋给第一个字符串。

&&

(逻辑与)如果两个操作数都是真的话则返回真。

否则返回假。

||

(逻辑或)如果两个操作数都是假的话则返回假。

否则返回真。

!

(逻辑非)如果其单一操作数为真,则返回假。

否则返回真。

&

(按位与)如果两个操作数对应位都是1的话则在该位返回1。

^

(按位异或)如果两个操作数对应位只有一个1的话则在该位返回1。

|

(按位或)如果两个操作数对应位都是0的话则在该位返回0。

~

(求反)反转操作数的每一位。

<<

(左移)将第一操作数的二进制形式的每一位向左移位,所移位的数目由第二操作数指定。

右面的空位补零。

>>

(算术右移)将第一操作数的二进制形式的每一位向右移位,所移位的数目由第二操作数指定。

忽略被移出的位。

>>>

(逻辑右移)将第一操作数的二进制形式的每一位向右移位,所移位的数目由第二操作数指定。

忽略被移出的位,左面的空位补零。

=

将第二操作数的值赋给第一操作数。

+=

将两个数相加,并将和赋给第一个数。

-=

将两个数相减,并将差赋给第一个数。

*=

将两个数相乘,并将积赋给第一个数。

/=

将两个数相除,并将商赋给第一个数。

%=

计算两个数相除的余数,并将余数赋给第一个数。

&=

执行按位与,并将结果赋给第一个操作数。

^=

执行按位异或,并将结果赋给第一个操作数。

|=

执行按位或,并将结果赋给第一个操作数。

<<=

执行左移,并将结果赋给第一个操作数。

>>=

执行算术右移,并将结果赋给第一个操作数。

>>>=

执行逻辑右移,并将结果赋给第一个操作数。

==

如果操作数相等的话则返回真。

!

=

如果操作数不相等的话则返回真。

>

如果左操作数大于右操作数的话则返回真。

>=

如果左操作数大于等于右操作数的话则返回真。

<

如果左操作数小于右操作数的话则返回真。

<=

如果左操作数小于等于右操作数的话则返回真。

?

:

执行一个简单的“if...else”语句。

计算两个表达式,返回第二个表达式的值。

delete

允许你删除一个对象的属性或数组中指定的元素。

new

允许你创建一个用户自定义对象类型或内建对象类型的实例。

this

可用于引用当前对象的关键字。

typeof

返回一个字符串,表明未计算的操作数的类型。

void

该操作符指定了要计算一个表达式但不返回值。

赋值操作符

赋值操作符会根据其右操作数侧的值给左操作数赋值。

实现版本

Navigator2.0

最基本的赋值操作数是等号(=),它会将右操作数的值直接赋给左操作数。

也就是说,x=y将把y的值赋给x。

其它的赋值操作符都是标准操作的缩略形式,列在表2.2中。

表2.2赋值操作符

缩写操作符

含义

x+=y

x=x+y

x-=y

x=x-y

x*=y

x=x*y

x/=y

x=x/y

x%=y

x=x%y

x<<=y

x=x<

x>>=y

x=x>>y

x>>>=y

x=x>>>y

x&=y

x=x&y

x^=y

x=x^y

x|=y

x=x|y

比较操作符

所谓比较操作符,就是会比较其两边的操作数,并根据比较结果为真或假返回逻辑值。

操作数可以是数值或字符串值。

如果使用字符串值的话,比较是基于标准的字典顺序。

实现版本

Navigator2.0

相关内容列在了表2.3中。

对于该表中的示例,我们假定var1被赋予了值3,而var2被赋予了值4。

表2.3比较操作符

操作符

描述

返回真的例子

相等(==)

如果操作数相等的话则返回真。

3==var1

不等(!

=)

如果操作数不等的话则返回真。

var1!

=4

大于(>)

如果左操作数大于右操作数的话则返回真。

var2>var1

大于或等于(>=)

如果左操作数大于等于右操作数的话则返回真。

var2>=var1

var1>=3

小于(<)

如果左操作数小于右操作数的话则返回真。

var1

小于或等于(<=)

如果左操作数小于等于右操作数的话则返回真。

var1<=var2

var2<=5

算术操作符

将给定数值(常量或变量)进行给定的计算,并返回一个数值。

标准的算术操作符是加(+)、减(-)、乘(*)、除(/)四则运算。

这些操作符与在其它编程语言中的作用一样。

实现版本

Navigator2.0

%(取余)

取余操作符用法如下:

var1%var2

取余运算符将返回第一个操作数除以第二个操作数的余数。

对于上面的例子来说,将返回var1变量除以var2变量的余数。

更具体的例子是,12%5将返回2。

++(自增)

自增操作符用法如下:

var++或++var

该自增操作符将自增操作数(自己加上1)并返回一个值。

如果写在变量后面(如x++),将返回自增前的值。

如果写在变量前面(如++x),将返回自增后的值。

例如,如果x是3,那么语句y=x++将先把y置为3再将x自增为4。

相反,语句y=++x将先将x自增为4,再将y置为4。

--(自减)

自减操作符用法如下:

var--或--var

该自增操作符将自减操作数(自己减去1)并返回一个值。

如果写在变量后面(如x--),将返回自减前的值。

如果写在变量前面(如--x),将返回自减后的值。

例如,如果x是3,那么语句y=x--将先把y置为3再将x自减为2。

相反,语句y=--x将先将x自减为2,再将y置为2。

-(求相反数)

求相反数操作数将取得操作数的相反数。

例如,y=-x将把x相反数的值赋给y;也就是说,如果x是3的话,y就会获得-3而x还是3。

位操作符

执行位操作时,操作符会将操作数看作一串二进制位(1和0),而不是十进制、十六进制或八进制数字。

例如,十进制的9就是二进制的1001。

位操作符在执行的时候会以二进制形式进行操作,但返回的值仍是标准的JavaScript数值。

表2.4JavaScript位操作符总览

表2.4位操作符

操作符

用法

描述

按位与

a&b

如果两个操作数对应位都是1的话则在该位返回1。

按位或

a|b

如果两个操作数对应位都是0的话则在该位返回0。

按位异或

a^b

如果两个操作数对应位只有一个1的话则在该位返回1。

求反

~a

反转操作数的每一位。

左移

a<

将a的二进制形式左移b位。

右面的空位补零。

算术右移

a>>b

将a的二进制形式右移b位。

忽略被移出的位。

逻辑右移

a>>>b

将a的二进制形式右移b位。

忽略被移出的位,左侧补入0。

位逻辑操作符

实现版本

Navigator2.0

从原理上讲,位逻辑操作符的工作流程是这样的:

∙将操作数转换为32位的整型数值并用二进制表示。

∙第一操作数的每一位与第二操作数的对应位配对:

第一位对第一位,第二位对第二位,以此类推。

∙对每一对位应用操作符,最终结果按位组合起来。

例如,9的二进制表示为1001,15的二进制表示为1111。

所以如果对这两个数应用位逻辑操作符,结果应该像下面这样:

∙15&9结果为9(1111&1001=1001)

∙15|9为15(1111|1001=1111)

∙15^9为6(1111^1001=0110)

移位操作符

实现版本

Navigator2.0

移位操作符需要两个操作数:

第一个是要进行移位的数值,第二个指定要对第一个数移位的数目。

移位的方向由使用的操作符决定。

移位操作符将把两个操作符转换为32位整型数值,并返回与左操作数类型相同的结果。

<<(左移)

该操作符将把第一个操作数向左移若干位。

移出的位将被忽略。

右侧空位补零。

例如,9<<2结果为36,因为1001向左移两位变成100100,这是36。

>>(算术右移)

该操作符将把第一个操作数享有移若干位。

移出的位将被忽略。

左侧的空位补上与原来最左面位相同的值。

例如,9>>2结果为2,因为1001右移两位变成10,这是2。

反之,-9>>2结果为-3,因为要考虑到符号位。

>>>(逻辑右移)

该操作符将把第一个操作数享有移若干位。

移出的位将被忽略。

左侧的空位补零。

例如,19>>>2结果为4,因为10011右移两位变成100,这是4。

对于非负数,算术右移和逻辑右移结果相同。

逻辑操作符

逻辑操作符用Boolean值(布尔逻辑值)作为操作数,并返回Boolean值。

实现版本

Navigator2.0

表2.5描述的很清楚。

表2.5逻辑操作符

操作符

用法

描述

与(&&)

expr1&&expr2

如果expr1为假则返回之,否则返回expr2。

或(||)

expr1||expr2

如果expr1为真则返回之,否则返回expr2。

非(!

!

expr

如果expr为真则返回假,否则返回真。

示例

考虑下面的脚本:

"

v1="猫";

v2="狗";

v3=false;

document.writeln("t&&t返回"+(v1&&v2));

document.writeln("f&&t返回"+(v3&&v1));

document.writeln("t&&f返回"+(v1&&v3));

document.writeln("f&&f返回"+(v3&&(3==4)));document.writeln("t||t返回"+(v1||v2));

document.writeln("f||t返回"+(v3||v1));

document.writeln("t||f返回"+(v1||v3));

document.writeln("f||f返回"+(v3||(3==4)));

document.writeln("!

t返回"+(!

v1));

document.writeln("!

f返回"+(!

v3));

该脚本将显示下列内容:

t&&t返回狗

f&&t返回false

t&&f返回false

f&&f返回false

t||t返回猫

f||t返回猫

t||f返回猫

f||f返回false

!

t返回false

!

f返回true

简化计算

由于逻辑表达式是从左到右计算的,计算机自然不会傻到真的将全部表达式都计算一遍,它会试着偷偷懒,想办法按照下面的规则“简化”计算:

∙false&&任何值都会被简化为false。

∙true||任何值都会被简化计算为true。

逻辑运算的简化原则是保证逻辑运算本身总是正确的。

请注意,如果使用了简化规则,那么被简化掉的表达式就不会进行计算,所以也就不会产生它应该起的作用。

字符串操作符

除了比较操作符,可应用于字符串值的操作符还有连接操作符(+),它会将两个字符串连接在一起,并返回连接的结果。

例如,“my ”+“string”将返回字符串“my string”。

实现版本

Navigator2.0

组合赋值操作符+=也可用于连接字符串。

例如,如果变量mystring的值为“alpha”,表达式mystring+="bet"将计算出“alphabet”并将其赋给mystring。

特殊操作符

?

:

(条件操作符)

条件操作符是JavaScript所有操作符之中唯一需要三个操作数的。

该操作符通常用于取代简单的if语句。

实现版本

Navigator2.0

语法

condition?

expr1:

expr2

参数

condition

计算结果为true或false的表达式

expr1,expr2

任意类型值的表达式。

描述

如果condition为真的话,该操作符将返回expr1的值;否则返回expr2的值。

例如,要根据isMember变量的值显示不同的信息,可以使用此语句:

document.write("收费为"+(isMember?

"$2.00":

"$10.00"))

(逗号操作符)

逗号操作符非常简单。

它会依次计算两个操作数并返回第二个操作数的值。

实现版本

Navigator2.0

语法

expr1,expr2

参数

expr1,expr2

任意表达式

描述

你可以在你想要在只能填入一个表达式的地方写入多个表达式时使用逗号操作符。

该操作符最常见的用途是在for语句中使用多个变量作为循环变量。

例如,如果a是一个10x10的二维数组,下面的代码将使用逗号操作符一次自增两个变量。

结果是打印出该数组副对角线上的元素:

for(vari=0,j=10;i<=10;i++,j--)

   document.writeln("a["+i+","+j+"]="+a[i,j])

delete

删除一个对象的属性或者数组中特定位置的元素。

实现版本

Navigator2.0

语法

deleteobjectName.property

deleteobjectName[index]

deleteproperty

参数

objectName

对象的名称。

属性

已有的属性。

index

一个整型数值,表明了要删除的元素在数组处的位置。

描述

第三种格式只在with语句中合法。

如果删除成功,delete操作符将把属性或元素设为undefined(未定义)。

delete总是返回undefined。

new

该操作符用于创建用户自定义对象类型或者拥有构造函数的内建对象类型的实例。

实现版本

Navigator2.0

语法

objectName=newobjectType(param1[,param2]...[,paramN])

参数

objectName

新对象实例的名称。

objectType

对象类型。

它必须是一个定义对象类型的函数。

param1...paramN

对象的属性值。

这些属性是objectType函数的参数。

描述

创建一个用户自定义对象需要两个步骤:

1.写一个函数定义一种对象类型。

2.用new创建一个该对象的实例。

要定义一个对象类型,需要为该对象创建一个指定名称、属性和方法的函数。

一个对象的属性可以是其它类型的对象。

请参看下面的例子。

你总可以向已经定义的对象中添加属性。

例如,car1.color="black"将给car1添加一个叫color的属性,并给其赋值“black”。

不过这对其它任何对象并没有什么作用。

要给同一类型的所有对象都添加一个新的属性,你必须向car对象类型的定义中添加属性。

你可以使用Function.prototype属性向先前定义的对象类型中添加属性。

这将定义一个被所有由该函数创建的对象共享的属性,而不只是一个对象类型实例才有。

下面的代码将为所有car类型的对象添加一个color属性,然后将对象car1的color属性赋值。

更多信息,请参看prototype。

Car.prototype.color=null

car1.color="black"

示例

示例1:

对象类型和对象实例。

假设你想要创建一个汽车使用的对象类型。

你想要这种对象类型叫做car,有属性make,model,和year。

要完成这么多事情,你需要编写如下的函数:

functioncar(make,model,year){

   this.make=make

   this.model=model

   this.year=year

}

现在你就可以用下面的方法创建一个叫做mycar的对象了:

mycar=newcar("Eagle","TalonTSi",1993)

该语句创建了mycar并将其属性赋了指定的值。

也就是说,mycar.make的值是字符串“Eagle”,mycar.year是整型数1993,等等。

使用new你可以创建任意多个car对象。

如,

kenscar=newcar("Nissan","300ZX",1992)示例2:

对象属性就是另外一个对象。

假设你按照下面代码定义了一个叫做person的对象类型:

functionperson(name,age,sex){

   this.name=name

   this.age=age

   this.sex=sex

}

然后创建了两个新的person实例:

rand=newperson("RandMcNally",33,"M")

ken=newperson("KenJones",39,"M")

现在你可以重写car的定义,以便包含一个person对象作为owner属性表明车主:

functioncar(make,model,year,owner){

   this.make=make;

   this.model=model;

   this.year=year;

   this.owner=owner;

}

要创建一个新对象的实例,你可以使用下面的代码:

car1=newcar("Eagle","TalonTSi",1993,rand);

car2=newcar("Nissan","300ZX",1992,ken)

请注意,我们在创建对象的时候并没有给出一个常量字符串或者一个整型值,而是传递了对象kand和ken作为owner的参数。

要找出car2车主的名字的方法是:

car2.owner.name

this

该关键字用于引用当前对象,通常情况下,方法中的this指调用它的对象。

实现版本

Navigator2.0

语法

this[.propertyName]

示例

假定有一个叫做validate的函数可以校验对象的value属性,如果给出对象值的上下限的话:

functionvalidate(obj,lowval,hival){

   if((obj.valuehival))

      alert("无效数据e!

")

}

你可以在每个窗体元素的onChange事件句柄中调用validate,只用下面的格式传递this作为参数就行了:

请输入18到99之间的数值:

   onChange="validate(this,18,99)">

typeof

typeof操作符用法格式如下:

1.typeofoperand

2.typeof(operand)

typeof操作符将返回一个字符串,表明未计算的operand操作数是什么类型的。

operand是一个要返回类型的字符串变量、关键字或者对象。

圆括号可选。

实现版本

Navigator3.0

假设你定义了下面的变量:

varmyFun=newFunction("5+2")

varshape="round"

varsize=1

vartoday=newDate()

typeof操作符将返回下面的值:

typeofmyFunisobject

typeofshapeisstring

typeofsizeisnumber

typeoftodayisobject

typeofdontExistisundefined

对于关键字true和null,typeof操作符返回下面的结果:

typeoftrueisboolean

typeofnullisobject

对于数值或字符串,typeof操作符返回下面的结果:

typeof62isnumber

typeof'Helloworld'isstring

对于属性值,typeof操作符返回属性所含值的类型:

typeofdocument.lastModifiedisstring

typeofwindow.lengthisnumber

typeofMath.L

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1