详细介绍ECMAScript基础

网上有无数的文章说明如何用JavaScript实现“傻瓜式的Web小把戏”,它们包括如何弹出用户提示信息、交换图片以及创建简单的游戏等。虽然这些功能给Web站点增加了趣味性,不过只是复制粘贴其代码,并不能让你理解它们为什么能起作用以及如何起作用。本文章详细地讲解了JavaScript的核心ECMAScript的基础知识。

一、 语法

ECMAScript的基础概念如下:

  •     
  • 区分大小写。     
  • 变量是弱类型的,可以随时改变变量所存数据的类型。     
  • 每行的结尾的分号可有可无。     
  • 注释与Java、C和PHP语言的注释相同,单选注释以双斜线(//)开头。多行注释以单斜线和星号(/*)开头,以星号加单斜线结尾(*/)。     
  • 括号表明代码块,语句被封闭在左括号({)和右括号(})之间。

二、变量

ECMAScript中的变量是用var运算符加变量名定义的。变量名需要遵守两条简单的规划:

1、每个字符必须是字母、下划线(_)或美元符号($)。

2、余下的字符可下划线、美元符号或者任何字母或者数字字符。

变量还应遵守以下三种著名的命名规划:

1、 Camel标记法——首字母是小写,接下来的单词都以大写字母开头。

如:

 
  
  1. VarmyTestValue=0;

2、 Pascal标记法——首字母是大写的,接下来的单词都以大写字母开关。

如:

 
  
  1. varMyTestValue=0;

3、 匈牙利类型标记法——在以Pascal标记法命名的变量前附加一个小写字母,该变量的类型。以下是各字母前缀代表的类型:a(数组),b(布尔型),f(浮点型),fn(函数),i(整型),o(对象),re(正则表达式),s(字符串),v(变型[可以是任何类型])。如:

 
  
  1. variMyTestValue=0;

三、关键字

ECMA-262定义了ECMAScript支持的一套关键字是保留的,不能用作变量名或者函数名。

下面是ECMAScript关键字的完整列表:

 
  
  1. Breakelsenewvarcasefinallyreturnvoidcatchfor
  2. Switchwhilecontinuefunctionthiswithdefaultifthrow
  3. deleteintrydoinstanceoftypeof

四、保留字

ECMA-262定义了ECMAScript定义的一套保留字是某种意义上的为将来的关键字而保留的单词,其不能用作变量名或者函数名。

下面是ECMAScript保留字的完整列表:

 
  
  1. AbstractenumintshortBooleanexportinterfacestaticbyteextendslongsuper
  2. Charfinalnativesynchronizedclassfloat
  3. packagethorwsconstgotoprivatetransient
  4. debuggerimplementsprotectedvolatiledoubleimportpublic

五、原始值和引用值

原始值是存储在栈中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。引用值是存储在堆中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存处。

六、原始类型

ECMAScript有5种原始类型,即Undefined,Null,Boolean,Number和String。

typeof运算符:只有有个参数,即要检查的变量或值。

如:

 
  
  1. varsTemp=”teststring”;
  2. alert(typeofsTemp)//outputs“string”。

1、 Undefined类型只有一个值,即undefined,当声明的变量未初始化时,该变量的默认值是undefined。当函数无明确返回值是,返回的也是值undefined。

2、 Null类型表示尚未存在的对象,只有一个专用值null,值undefined实际上是从值null派生来的,因此EJSON数据在J2ME下的构造和解析CMAScript把它们定义为想等的。

 
  
  1. alert(null==undefined);//outputs“true”。

3、 Boolean类型只有两个值true和false。

4、 Nunmber类型既可表示32位整数,也可表示64位浮点数。特殊值NaN,表示非数。

5、 String类型没有固定大小,可用字符串存储0或更多的Unicode字符,由16位整数表示。

七、转换

1、转换成字符串

Boolean值、数字和字符串的原始值是伪对象,他们有属性和方法,都有toString()方法

2、转换成数字

ECMAScript提供了两种把非常的原始值转换成数字的方法,即parseInt()和parseFloat (),只有对String类型调用这些方法,才能正确运行。

3、强制类型转换

  •     
  • Boolean(Value)——把给定的值转换成Boolean型。     
  • Number(Value)——把给定的值转换成数字。     
  • String(Value)——把给定的值转换成字符串。

八、引用类型

引用类型通常叫做类,遇到引用值时,所处理的就是对象。对象有由new运算符加上要实例化的类的名字创建的。

1、 Object类:ECMAScript中的所有类都是由这个类继承来,Object类中的所有属性的方法都会出现在其他类中。

2、 Boolean类:Boolean原始类型的引用类型。

3、 Number类:Number原始类型的引用类型。

4、 String类:String原始类型的对象表示法。

  •     
  • charCodeAt()方法返回的是侯岛指定位置处的字符的字符串。     
  • contact()方法用于把一个或多个字符串连接到String对象的原始值上。     
  • indexOf()方法是从字符串的开关开始检索子串,返回指定的字串在另一个字符串的位置。     
  • lastIndexOf()方法是从字符串的结尾开始检索子串,返回指定的字串在另一个字符串的位置。     
  • localeCompare()对字符串排序,只有一个参数,即要进行比较的字符串。     
  • slice()返回要处理的字符串的子路,接受一个或者两个参数,一个是子串的起始位置,另一个是获取子串的终止前的位置。对于负参数如何编写可维护的JavaScript代码-_0,用字符串的长度加上参数。     
  • substring()返回要处理的字符串的子路,接受一个或者两个参数,一个是子串的起始位置,另一个是获取子串的终止前的位置。对于负参数,其将其作为处理。 它总是把较小的数位作为起始位,较大的数字作为终止位。     
  • instanceof运算符:用于识别正在处理的对象的类型。

九、运算符

1、一元运算符

delete运算符删除对以前定义的对象属性或方法的引用;Void运算符对任何值返回undefine;前(后)增量/前(后)减量运算符(++、–);一元加(减)法。

2、位运算符:NOT(~),AND(&),OR(|),左移(<<),右移(>>),无符号右移运算(>>>)。

3、Boolean运算符:逻辑NOT(!),逻辑AND(&&),逻辑OR(||)。

4、乘性运算符:乘(*),除(/),取模(%)。

5、加性运算符:+,-。

6、关系运算符:小于(<),大于(>),小于等于(<=)和大于等于(>=)。

7、等性运算符:双等号(==),不等于(!=),全等号(====),非全等号(!==)。

8、条件运算符:?:

9、赋值运算符:=

十、语句

1、if语句

if(条件) 语句1 else 语句2

2、迭代语句

do{语句} while(条件),while(条件)语句,for(初始值;条件;递增量)语句,for(属性 in 表式) 语句

3、有标签的语句:标签:语句

4、 break语句:立即退出循环,阻止再次反复执行任何代码。Continue语句退出当前循环。

5、 with语句:用于设置代码在特定对象中的作用域,with(表达式)语句。

6、 switch语句:

 
  
  1. switch(表达式){
  2. case值:语句
  3. break
  4. case值:语句
  5. break
  6. case值:语句
  7. break
  8. ……
  9. Default:语句
  10. }

十一、函数

函数是一组可以随时随地运行的语句,函数是由关键字function、函数名加一组参数以及置于括号中的要执行的代码声明的。如果函数无明确的返回值,或调用了没有参数的return语句,那么它真正返回的值是undefined。ECMAScript中的函数不能重载;在函数中可以使用特殊对象arguments。

1、 Function类

 
  
  1. var函数=newFunction(参数1,参数2,……参数N,函数体)

2、闭包:能使用函数外定义的变量的函数。

希望对你有帮助。

本文链接地址: http://www.yiiyaa.net/669

你可能感兴趣的:(详细介绍ECMAScript基础)