YTUWeb技术原理及应用Web系统与技术烟台大学计算机学院陈智育第4讲JavaScript基础知识烟台大学计算机学院Web原理及应用内容4.1JavaScript概述4.2面向对象和JavaScript4.3一般语法特征4.4原始数据,操作和表达式4.5屏幕输出和键盘输入4.6控制语句4.7创建和修改对象4.8数组4.9函数4.11构造函数4.14脚本中的错误烟台大学计算机学院Web原理及应用4.1JavaScript概述起源最早由Netscape开发,名为LiveScript1995,Netscape和sun联合推出JavaScipt标准ECMA-262,ISO-16262官方名称ECMAScript,微软JSciptJavaScript代码的集合称为脚本JavaScript和Java完全无关,仅语法相似JavaScript类型是动态的,为弱类型语言JavaScript对象是动态的烟台大学计算机学院Web原理及应用4.1JavaScript概述JavaScript的用途可作为Javaapplet(附录C)的替代JavaScript是Ajax的基础通过表单元素可方便与用户交互通过DOM可支持动态XHTML文档(第5,6章)大部分JavaScript脚本是事件驱动的(第5章)浏览器和XHTML/JavaScipt文档显示嵌入和隐式嵌入在头部还是主体中烟台大学计算机学院Web原理及应用4.2面向对象和JavaScriptJavaScript不是面向对象语言不支持类和继承,不支持多态性JavaScript是基于对象的语言对象是属性的集合,属性相当于Java的类成员数据属性或方法属性某些简单数据类型使用非对象类型,称为原始数据类型(Primitives)所有对象都通过引用间接访问根对象为Object,是所有对象的祖先烟台大学计算机学院Web原理及应用4.3一般语法特征显示嵌入隐式嵌入语言基础标识符规则,区分大小写25个关键字(P116表4-1)注释(与C语言近似):/**/,//scripttype=text/javaScript--JavaScriptscript–/scriptscripttype=text/javaScriptsrc=myScript.js/script烟台大学计算机学院Web原理及应用4.3一般语法特征显示嵌入时,注释JavaScript代码分号的问题行结束可能自动添加分号语句尽量完整写在一行中,并以分号结束!----JavaScriptscript–//--烟台大学计算机学院Web原理及应用4.4原始数据,操作和表达式原始数据类型5种:数值,字符串,布尔型,未定义值和空值包装[wrapper]对象:Number,String,Boolean数值和字符串表示和C类似字符串可用单引号布尔型值:true或false空类型值:null,变量未声明未定义值:undefined,变量已声明但未赋值烟台大学计算机学院Web原理及应用4.4原始数据,操作和表达式声明变量JavaScript变量类型是动态的,可存储任何值(原始值或对象引用)程序中变量的值的类型由解释器确定变量可以显式声明(推荐)或隐式声明•varindex;•index=0;烟台大学计算机学院Web原理及应用4.4原始数据,操作和表达式数值运算符++,--,+,-,*,/,%所有运算都按双精度进行优先级和结合规则与C/C++,Java近似Math对象提供floor,round,max,min和三角函数…例:Math.sin(x)烟台大学计算机学院Web原理及应用4.4原始数据,操作和表达式Number对象包含一组非常有用的常量属性(P121表4-3)例:Number.PINaN表数值运算溢出结果,可用isNaN()判断方法toString•可将数值转为串表示•原始数值类型也可调用该方法•varprice=427,str_price;•str_price=price.toString();字符串连接操作符:+烟台大学计算机学院Web原理及应用4.4原始数据,操作和表达式隐式类型转换串+数值,数值转换为串例:“August”+1997=“August1997”串“非加运算”数值,串转为数值(或NaN)例:7*”3”=21烟台大学计算机学院Web原理及应用4.4原始数据,操作和表达式显式类型转换数-串•使用String构造函数:String(value)•使用toString方法串-数•使用Number的构造函数:Number(astring)•使用运算符:astring–0•使用函数parseInt或parseFloat解析串烟台大学计算机学院Web原理及应用4.4原始数据,操作和表达式String属性和方法属性length表示串长度,str.length方法(P124表4-4)•charAt(position):返回指定位置的字符•indexOf(string):返回指定字符在串中的位置•substring(from,to):返回子串•toLowerCase():转为小写,toUpperCase:转为大写typeof操作符返回操作数类型(字符串)number,string,boolean,object,undefined例:typeof(x)烟台大学计算机学院Web原理及应用4.4原始数据,操作和表达式赋值语句(近似C):=,+=Date对象用操作符new和构造函数创建对象•创建当前时间的对象:vartoday=newDate()两种形式:本地时间和协同通用时间(UTC)方法(P125表4-5)•toLocalString:转为串•getXxx:getMonth…烟台大学计算机学院Web原理及应用4.5屏幕输出和键盘输入window对象:表示浏览器窗口document对象:表示显示的网页文档document.write向网页文档写入内容document.write(Answer:+result+br/);window对象的方法(不需包含对象引用)alert(“Hello!\n”);图4-3ret=confirm(“Doyouwanttocontinue?”);图4-4name=prompt(Whatisyourname?,);图4-5烟台大学计算机学院Web原理及应用4.5屏幕输出和键盘输入roots.htmlroots.js烟台大学计算机学院Web原理及应用4.6控制语句与C/C++/Java类似控制表达式结果是布尔类型的值(true或false)关系运算符•==,!=,,,=,=•严格等于(===)和严格不等(!==),不进行类型转换•例:“3”==3为true,“3”===3为false逻辑运算符:&&,||,!运算符的优先级和结合性烟台大学计算机学院Web原理及应用4.6控制语句if-else语句switch语句borders2.js烟台大学计算机学院Web原理及应用4.6控制语句循环语句while(表达式){}for(表达式1;表达式2;表达式3){}do{}while(表达式)for-in语句,和对象一起使用烟台大学计算机学院Web原理及应用4.7创建和修改对象使用new操作符和构造函数创建对象(另一方法)例:varmy_car=newObject();最基本的对象,空白对象无属性属性可随时添加:my_car.make=“Ford”;对象可嵌套:my_car.engine=newObject();属性可删除:deletemy_car.makefor-in循环用于列出某个对象的所有属性for(varpropinmy_car)document.wrire(prop,my_car[prop]);烟台大学计算机学院Web原理及应用4.8数组数组是一个带有很多特殊功能的对象;数组元素可是原始类型值,对象引用或其他数组;长度动态创建Array对象(另一方法)varlist1=newArray(1,2,“three”,“four”);varlist2=newArray(100);Array对象特征索引从0开始长度动态:list1[47]=2222;list1.length=48;烟台大学计算机学院Web原理及应用4.8数组例:insert_name.js烟台大学计算机学院Web原理及应用4.8数组Array方法join:将元素转为字符串并连一起reverse:将元素顺序颠倒sort:将元素转为字符串再排序concat:在数组末添加元素slice:取数组的一部分toString:类似join,逗号分隔push/pop:用数组做栈(末尾加入/删除)shift/unshift:用数组做队列(首删除/末加入)二维数组烟台大学计算机学院Web原理及应用4.9函数格式:返回值没有类型return值;其他情况返回undefined函数为对象,名称为引用,可赋值给其他变量(似函数指针)函数引用可赋值给其他对象的属性,作为其方法调用为保证调用前定义,函数定义多放在XHTML文档的头部烟台大学计算机学院Web原理及应用4.9函数局部变量函数内用var语句显示声明的变量隐式声明或函数外声明的变量为全局变量参数既可传值,也可传引用参数无类型实参和形参数目可不相等(实参多则忽略,形参多为undefinded)参数通过数组arguments传送,arguments[i]代表各参数,属性length表个数烟台大学计算机学院Web原理及应用4.9函数例params.js烟台大学计算机学院Web原理及应用4.11构造函数构造函数为特殊函数,用于对象创建和属性初始化引用变量this,表新创建的对象functionplane(newMake,newModel,newYear){this.make=newMake;this.model=newModel;this.year=newYear;}myPlane=newplane(Cessna,Centurnian,1970);烟台大学计算机学院Web原理及应用4.11构造函数定义对象方法定义方法函数构造函数添加方法调用方法:functiondisplayPlane(){document.write(Make:,this.make,br/);document.write(Model:,this.model,br/);document.write(Year:,this.year,br/);}this.display=displayPlane;myPlane.display()烟台大学计算机学院Web原理及应用4.14脚本中的错误JavaScript解释器可检测运行脚本中的错误脚本错误将导致文档无法显示,无明确错误信息在IE中打开脚本调试菜单:“工具”-”Internet选项”烟台大学计算机学院Web原理及应用4.14脚本中的错误例:insert_names.js正确:错误:烟台大学计算机学院Web原理及应用4.14脚本中的错误Firefox使用专门的控制台窗口显示脚本错误菜单:“工具”-”错误控制台”错误信息比IE更准确;错误连续记录直到清除烟台大学计算机学院Web原理及应用小结JavaScript概述:ECMAScript,Jscipt,区别Java面向对象和JavaScript:基于对象的语言一般语法特征:script,text/javascript,src属性原始数据,操作和表达式:变量定义,Math,Number…屏幕输出和键盘输入:window,document.write…控制语句:控制表达式,if-else,swi