详细介绍ECMAScript基础

开发 前端
本文章详细地讲解了JavaScript的核心ECMAScript的基础知识。希望对你有帮助,一起来看。

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

一、 语法

ECMAScript的基础概念如下:

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

二、变量

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

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

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

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

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

如:

  1. Var myTestValue=0; 

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

如:

  1. var MyTestValue=0; 

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

  1. var iMyTestValue=0; 

三、关键字

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

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

  1. Break else new var case finally return void catch for  
  2. Switch while continue function this with default if throw   
  3. delete in try do instanceof typeof 

四、保留字

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

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

  1. Abstract enum int short Boolean export interface static byte extends long super  
  2. Char final native synchronized class float  
  3. package thorws const goto private transient  
  4. debugger implements protected volatile double import public 

五、原始值和引用值

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

六、原始类型

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

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

如:

  1. var sTemp=”test string”;   
  2. alert(typeof sTemp) //outputs “string”。 

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

2、 Null类型表示尚未存在的对象,只有一个专用值null,值undefined实际上是从值null派生来的,因此ECMAScript把它们定义为想等的。

  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)——把给定的值转换成字符串。

#p#

八、引用类型

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

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

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

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

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

  •  charCodeAt()方法返回的是侯岛指定位置处的字符的字符串。
  •  contact()方法用于把一个或多个字符串连接到String对象的原始值上。
  •  indexOf()方法是从字符串的开关开始检索子串,返回指定的字串在另一个字符串的位置。
  •  lastIndexOf()方法是从字符串的结尾开始检索子串,返回指定的字串在另一个字符串的位置。
  •  localeCompare()对字符串排序,只有一个参数,即要进行比较的字符串。
  •  slice()返回要处理的字符串的子路,接受一个或者两个参数,一个是子串的起始位置,另一个是获取子串的终止前的位置。对于负参数,用字符串的长度加上参数。
  •  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:语句  

十一、函数

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

1、 Function类

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

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

希望对你有帮助。

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

【编辑推荐】

  1. JavaScript实现二级联动下拉框
  2. 让浏览器非阻塞加载javascript的几种方式
  3. Javascript解决浏览器兼容性问题
  4. JavaScript的10种跨域共享的方法总结
  5. Javascript中闭包的作用域链
责任编辑:于铁 来源: 意雅
相关推荐

2011-06-22 12:57:54

JVM

2009-08-13 15:40:28

C#基础知识

2011-07-14 16:56:21

2011-07-14 23:27:05

C++引用

2010-03-05 13:09:23

Linux shell

2010-03-05 13:00:46

2010-03-05 11:58:52

2010-03-05 13:19:23

2010-03-05 12:50:38

Linux shell

2010-03-05 11:18:52

Linux shell

2011-06-21 09:50:51

volatile

2011-07-14 16:26:01

2011-06-21 10:37:56

const

2009-12-21 13:03:06

向量路由协议

2010-03-05 10:24:33

2010-03-05 10:50:17

2011-07-14 17:17:21

C++指针

2011-07-14 17:02:09

C++指针

2011-07-14 13:50:09

ThreadLocal

2011-03-15 09:14:29

点赞
收藏

51CTO技术栈公众号