第1讲:ECMAScript语法基础_第1页
第1讲:ECMAScript语法基础_第2页
第1讲:ECMAScript语法基础_第3页
第1讲:ECMAScript语法基础_第4页
第1讲:ECMAScript语法基础_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北风网项目培训第1讲:ECMAScript语法基础讲师:风舞烟JavaScript系列讲座本讲内容1、ECMAScript简介2、ECMAScript语法基础一、了解ECMAScript历史

1995年12月升阳公司与网景通讯公司一起引入了JavaScript。1996年3月,网景通讯公司发表了支持JavaScript的网景导航者2.0。由于JavaScript作为网页的客户面脚本语言非常成功,微软于1996年8月引入了InternetExplorer3.0,这个软件支持一个“约”与JavaScript相容的JScript。1996年11月网景通讯公司将JavaScript提交给欧洲计算机制造商协会进行标准化。ECMA-262的第一个版本于1997年6月被Ecma组织采纳。ECMAScript是由ECMA-262标准化的脚本语言的名称。JavaScript和JScript与ECMAScript相容,但包含超出ECMAScript的功能。

版本至今为止有三个ECMA-262版本(edition)发表,版本3的修订版3.1和第4版正在工作中。各浏览器厂商对ECMA的支持许多程序,尤其是网页浏览器支持ECMAScript。浏览器中的ECMAScript实现添加了与文档对象模型的接口,可以通过脚本改变网页的内容、结构和样式。JavaScript之未来JS依旧是主流前端技术,正在研发的最新版本是ECMAScript4.0,加入了诸如Class,Interface,Package,Namespace以及Block等等。感觉JavaScript2.0将会变成和Java越来越接近的一种语言(这里指的是OO语法),类似于ActionScript,Adobe已经捐献了ActionScriptVirtualMachine2的源代码与Mozilla共同进行JavaScript2.0引擎的开发JavaScript是什么JavaScript的实现一个完整的JavaScript实现是由以下3个不同部分组成的.核心(ECMAScript)

文档对象模型(DOM)

浏览器对象模型(BOM)

JavaScript是什么ECMAScriptECMAScript可以为不同种类的宿主环境提供核心的脚本编程能力,因此核心的脚本语言是与任何特定的环境分开进行规定的…简单地说:ECMAScript描述了以下内容:语法类型语句关键字保留字运算符对象JavaScript是什么

ECMAScript仅仅是一个描述,定义了脚本语言的所有属性、方法和对象.其他语言可以实现ECMAScript来作为功能的基准,JavaScript就是这样

ECMAScriptJavaScriptActionScriptScriptEaseECMAScript基础2.1关键字

Javascript关键字(ReservedWords)是指在Javascript语言中有特定含义,成为Javascript语法中一部分的那些字。Javascript关键字是不能作为变量名和函数名使用的。使用Javascript关键字作为变量名或函数名,会使Javascript在载入过程中出现编译错误。

Javascript关键字列表:

breakdeletefunctionreturntypeof

casedoifswitchvar

catchelseinthisvoid

continuefalseinstanceofthrowwhile

debuggerfinallynewtruewith

defaultfornulltry

2.2保留字

Javascript还有一些未来关键字,这些字虽然现在没有用到Javascript语言中,但是将来有可能用到。

Javascript保留字列表:

casedebuggerexportsuper

catchdefaultextendsswitch

classdofinallythrow

constenumimporttry什么是JavaScript脚本的执行原理应用服务器IEIE解析HTML标签和JavaScript脚本从服务器端下载含JavaScript的页面返回响应客户端请求含JS的页面发送请求1用户输入23JavaScript的基本语法<HTML><HEAD><TITLE>脚本的基本结构</TITLE><SCRIPTlanguage="javascript"> varcount=0; document.write("淘宝网欢迎您!"); for(i=0;i<5;i++) document.write("<H2>淘宝网欢迎您!</H2>");</SCRIPT></HEAD><BODY><H1>BODY部分的内容</H1></BODY></HTML>JavaScript的基本语法类型转换注释控制语句运算符号变量基本语法

变量的声明和赋值

varcount;count=5;定义变量赋值“var”-用于声明变量的关键字“count”-变量名varx,y,z=10;varcount=10;同时声明和赋值变量声明多个变量运算符号运算符对一个或多个变量或值(操作数)进行运算,并返回一个新值根据所执行的运算,运算符可分为以下类别:算术运算符

+、-、*、/、%、++、--、-(求反)比较运算符

==、!=、>、>=、<、<=逻辑运算符

&&、||、!逻辑控制语句if条件语句switch多分支语句for、while循环语句if(条件){//JavaScript代码;}else{//JavaScript代码;}switch(表达式){case常量1:

JavaScript语句1; break; case

常量2:

JavaScript语句2;

break; ...

default:JavaScript语句3;

}for(初始化;条件;增量){

语句集;

}while(条件){

语句集;}注释单行注释以//开始,以行末结束例如:<SCRIPTlanguage=“javascript”>//表示JavaScript代码的开始多行注释以/*开始,以*/结束,符号/*……*/指示中间的语句是该程序中的注释。例如:/*helloWorld.html2007-9-29

第一个JavaScript程序*/ECMAScript基础-数据类型2.3原始值和引用值原始值:存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置引用值:存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存处2.4原始类型

ECMAScript有5种原始类型,即Undefined、Null、Boolean、Number、和StringECMAScript基础-数据类型2.4.1Undefined类型

Undefined只是一个值即undefined,当声明的变量未初使化时该变量初使化值是undefined.eg:vartemp;alert(temp)//output“undefined”

注意:function无返回值时,返回的也是undefinedeg:functionfunc1(){} vartest=func1(); alert(test);//output“undefined”ECMAScript基础-数据类型2.4.2Null类型

Null类型的字面量的值是null.值undefined实际上是从值null派生来的,因此ECMAScript把它们定义为相等的.alert(null==undefined)//output“true”

注意:尽管这两个值相等,但含义不同,null表示尚未存在的对象,undefined则代表变量未初使化eg:functiontest(){returnnull;}; varobj=test();alert(typeofobj)//output“[Object]”ECMAScript基础-数据类型2.4.3Boolean类型

它们有两个Boolean类型的字面量值true和false2.4.4Number类型

这种类型即可表示32位的整数,还可表示64位浮点数

eg:variNum=55;variNum=55.5;variNum=3.12e7;variNum=070;//八进制;等价于10进制的56variNum=0xAB;//十六进制;等价于171ECMAScript基础-数据类型对值或变量调用typeof运算符将返回下列值之一:“undefined”“boolean”“number”“string”“object”:如果变量是一种引用类型或Null类型的ECMAScript基础-数据类型2.4.5String类型

String类型的独特之处在于,它是一个唯一没有固定大小的原始类型.说明:常用的String的转义字符

\n换行;\b空格;\r回车;\\反斜杠;\’单引号;\”双引号typeof

运算符

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

var

stemp=“hellow”;

alert(typeof(stemp));//output“string”alert(typeof(95));//output“number”ECMAScript基础-数据类型2.5转换

2.5.1:转换为字符串:

a.toString()方法

1.Boolean类型的toString()方法只是输出“true”或”false”eg:varbtest=true;alert(btest.toString());//output“true”

2.Number类型的toString()方法比较特殊,它有两种模式,即默认模式和基模式采用默认模式,toString()方法只是用相应的字符串输出数字值采用基模式,可以转换为不同进制的;eg:varnum=10; alert(num.toString(2));//output“1010” alert(num.toString(8));//output“12” alert(num.toString(16));//output“a”ECMAScript基础-数据类型2.5.2转换为数字

ECAScript提供了两种把非数字转换为数字的方法,即parseInt()和parseFloat().只有对String类型调用这些方法,它们才能正常运行;对其他类型返回的都是NaN.Eg:variNum1=parseInt(“1234abc”);//return1234variNum2=parseInt(“0xA”);//return10variNum3=parseInt(“22.5”);//return22;variNum4=parseInt(“test”);//returnNaN注:parseInt方法还有基模式:

eg:alert(parseInt("10",2));//return2alert(parseInt(“10”,8));//return8alert(parseInt(“10”,10);//return10alert(parseInt(“010”))=>8alert(parseInt(“010”,8))=>8alert(parseInt(“010”,10))=>10ECMAScript基础2.5.3强类型转换使用强类型转换可以转换特定的值,即使它是另外一种类型.(非String类型).ECMAScript中可用的3种强类型转换如下:

Boolean(value)Number(value)String(value)

在处理ECMAScript这样的弱类型语言时,强类型转换非常有用,不过应该确保使用值的正确.ECMAScript基础2.6引用类型引用类型通常叫作类,如:varobj=newObject();

注意:也可写为varobj=newObject;

2.6.1:Object类

Object类类似于Java中的java.loang.object类,ECMAScript中的所有类都由这个类继承而来.Object类具有下列属性

a.Constructor--对创建对象的函数引用.b.Prototype–对该对象的对象原型的引用

c.HasOwnProperty(property)–判断对象是否有某个特定的属性.如:o.hasOwnProperty(“name”).e.toString()–返回对象的原始字符串表示.2.6.2:Boolean类2.6.3:Number类2.6.4:String类2.7:instanceof运算符在使用typeof运算符时采用引用类型存储值时会出现一个问题,无论引用的是什么类型的对象,它都会返回”object”.ESCMAScript引用另一个运算符instanceof来解决这个问题如:varostring=newString(“hellow”);alert(ostringinstanceofString);//output“true”2.8、部分运算符2.8.1:deletedelete运算符删除对以前定义的对象属性和方法的引用。如:

varo=newObject();="tom";alert();//output“tom”;delete;alert();//outpub“undefinded”注:delete运算符不能删除开发者未定义的属性和方法。如:deleteo.toString//error2.8:语句

2.8.1:if(condition1)statement1;elseif(condtion2)statement2;elsestatement3;2.8.2:迭代语句

do{statement}while(expression)While语句

While(expression)statementfor语句如:for(vari=0;i<10;i++){alert(i);}for-in语句

for(spropinwindow){alert(sprop);}breakcontinuewith语句

with(expression)statementeg:varsMessage=“hellowworld”;with(sMessage){alert(toUpperCase());}switch语句

同c#中的swith语法,和java的switch相同,不同的是switch语句可以用于字符串。

函数

functionfunctionName(arg0,arg1…,argn){statement[returnvalue;]}无重载

ECMAScript中的函数不能重载.

可用相同的名字在同一个作用域中定义,而不会引发错误,但真正使用的是后一个函数.argument对象在函数代码中,使用特殊对象arguments,开发者无需明确指出参数名,就能访问它。如:functionsayHi(){if(arguments[0]==undefined){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论