网上有无数的文章说明如何用JavaScript实现“傻瓜式的Web小把戏”,它们包括如何弹出用户提示信息、交换图片以及创建简单的游戏等。虽然这些功能给Web站点增加了趣味性,不过只是复制粘贴其代码,并不能让你理解它们为什么能起作用以及如何起作用。本文章详细地讲解了JavaScript的核心ECMAScript的基础知识。
一、 语法
ECMAScript的基础概念如下:
- 区分大小写。
- 变量是弱类型的,可以随时改变变量所存数据的类型。
- 每行的结尾的分号可有可无。
- 注释与Java、C和PHP语言的注释相同,单选注释以双斜线(//)开头。多行注释以单斜线和星号(/*)开头,以星号加单斜线结尾(*/)。
- 括号表明代码块,语句被封闭在左括号({)和右括号(})之间。
二、变量
ECMAScript中的变量是用var运算符加变量名定义的。变量名需要遵守两条简单的规划:
1、每个字符必须是字母、下划线(_)或美元符号($)。
2、余下的字符可下划线、美元符号或者任何字母或者数字字符。
变量还应遵守以下三种著名的命名规划:
1、 Camel标记法——首字母是小写,接下来的单词都以大写字母开头。
如:
- Var myTestValue=0;
2、 Pascal标记法——首字母是大写的,接下来的单词都以大写字母开关。
如:
- var MyTestValue=0;
3、 匈牙利类型标记法——在以Pascal标记法命名的变量前附加一个小写字母,该变量的类型。以下是各字母前缀代表的类型:a(数组),b(布尔型),f(浮点型),fn(函数),i(整型),o(对象),re(正则表达式),s(字符串),v(变型[可以是任何类型])。如:
- var iMyTestValue=0;
三、关键字
ECMA-262定义了ECMAScript支持的一套关键字是保留的,不能用作变量名或者函数名。
下面是ECMAScript关键字的完整列表:
- Break else new var case finally return void catch for
- Switch while continue function this with default if throw
- delete in try do instanceof typeof
四、保留字
ECMA-262定义了ECMAScript定义的一套保留字是某种意义上的为将来的关键字而保留的单词,其不能用作变量名或者函数名。
下面是ECMAScript保留字的完整列表:
- Abstract enum int short Boolean export interface static byte extends long super
- Char final native synchronized class float
- package thorws const goto private transient
- debugger implements protected volatile double import public
五、原始值和引用值
原始值是存储在栈中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。引用值是存储在堆中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存处。
六、原始类型
ECMAScript有5种原始类型,即Undefined,Null,Boolean,Number和String。
typeof运算符:只有有个参数,即要检查的变量或值。
如:
- var sTemp=”test string”;
- alert(typeof sTemp) //outputs “string”。
1、 Undefined类型只有一个值,即undefined,当声明的变量未初始化时,该变量的默认值是undefined。当函数无明确返回值是,返回的也是值undefined。
2、 Null类型表示尚未存在的对象,只有一个专用值null,值undefined实际上是从值null派生来的,因此ECMAScript把它们定义为想等的。
- 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语句:
- switch(表达式){
- case 值:语句
- break;
- case 值:语句
- break;
- case 值:语句
- break;
- ……
- Default:语句
- }
十一、函数
函数是一组可以随时随地运行的语句,函数是由关键字function、函数名加一组参数以及置于括号中的要执行的代码声明的。如果函数无明确的返回值,或调用了没有参数的return语句,那么它真正返回的值是undefined。ECMAScript中的函数不能重载;在函数中可以使用特殊对象arguments。
1、 Function类
- var 函数=new Function(参数1,参数2,……参数N,函数体)
2、闭包:能使用函数外定义的变量的函数。
希望对你有帮助。
本文链接地址: http://www.yiiyaa.net/669
【编辑推荐】