1、Javascript进阶篇第 1 章 系好安全带,准备启航 8 8第 2 章 你要懂的规则(JS 基础语法) 第 3 章 一起组团(数组) 第 4 章 跟着我的节奏走(流程控制语句) 最近学习 第 5 章 小程序,大作用(函数) 第 6 章 事件响应,让网页交互 第 7 章 JavaScript内置对象 第 8 章 浏览器对象 第 9 章 DOM 对象,控制 HTML 元素 第 10 章 编程挑战 第 1 章 系好安全带,准备启航 让你认识 JS你知道吗,Web 前端开发师需要掌握什么技术?也许你已经了解 HTML 标记(也称为结构),知道了 CSS 样式(也 称为表示),会使用 HTML+C
2、SS 创建一个漂亮的页面,但这还不够,它只是静态页面而已。我们还需使用 JavaScript 增加行为,为网页添加动态效 果。准备好,让 JavaScript 带你进入新境界吧!JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现页面与用户之间的实时、动态交互(如:用户注册、登陆验证等)JS 进阶篇学习什么?在 JavaScript 入门篇中,我们学习了如何插入 JS、输出内容及简单的 DOM 操作,JavaScript进阶篇让您进一步的了解 JS 的变量、数组、函数、语法、对象、事件、DOM 操作,制作简单的网页动态效果。任务我们先来回顾下 JS
3、入门篇的基础内容,在网页中插入 JS 代码,实现输出“JS进阶篇“,并弹出对话框,内容为“关注 JS 高级篇“。注意:1. JS 是区分大小写的,如:classname 和ClassName 是不一样的。同时注意方法、属性、变量等的大小写吆。2. JS 中的字符、符号等一定要在英文状态下输入吆。 我们互动下 function jump() var mymessage=confirm(“关注 JS 高级篇“); if(mymessage=true) document.write(“恭喜您进入年薪百万的节奏 !“); else document.write(“o()o 唉! 不管你是男屌丝还是女屌
4、丝,不学习你始终都会是个屌丝 !“); js 进阶篇 编程练习小伙伴们,实现在 html 页面中的插入 JavaScript 脚本,打开页面时,在页面中显示一句话 : “系好安全带,准备启航-目标 JS“,并弹出一个提示框:“准备好了,起航吧!“ 温馨提示: 完成任务后,请验证是否与实践要求一致,如一致,恭喜您,已经掌握此技能。否则,请重新学习课程内容吆,直到实践编写代码与实践要求一致。任务第一步:把注释语句注释。第二步:编写代码,在页面中显示 “系好安全带,准备启航-目标 JS”文字;第三步:编写代码,在页面中弹出提示框“准备好了,起航吧!”提示: 可以把弹框方法写在函数里。第四步:使用引入
5、 JS 外部文件的方式实现以上的任务。 系好安全带,准备启航 /多行注释 /*我是多行注释! 我需要隐藏, 否则会报错哦!*/ /在页面中显 示文字 /*document.write(“系好安全带,准备启航-目标 JS“); /页面中弹出 提示框 function jump() var mychar=“哒湿准备好了,起航吧!“; alert(mychar); /单行注释 /我是单行注释,我也要隐藏 起来!*/ 第 2 章 你要懂的规则(JS 基础语法) 什么是变量什么是变量? 从字面上看,变量是可变的量;从编程角度讲,变量是用于存储某种/某些数值的存储器。我们可以把变量看做一个盒子,盒子用来存
6、放物品,物品可以是衣服、玩具、水果.等。任务此节没有任务,点击提交进行下节学习吧。 变量 什么是变量从字面上看,变量是可变的量;从编程角度讲,变量是用于存储某种/某些数值的存储器。我们可以把变量看做一个盒子, 盒子用来存放物品,物品可以是衣服、玩具、水果.等。 给变量取个名字(变量命名)我们为了区分盒子,可以用 BOX1,BOX2 等名称代表不同盒子,BOX1 就是盒子的名字(也就是变量的名字)。我们赶快给变量取个好名字吧!变量名字可以任意取,只不过取名字要遵循一些规则:1.必须以字母、下划线或美元符号开头,后面可以跟字母、下划线、美元符号和数字。如下:正确: mysum _mychar $n
7、uma1 错误:6num /开头不能用数字%sum /开头不能用除(_ $)外特殊符号,如(% + /等)sum+num /开头中间不能使用除(_ $)外特殊符号,如(% + /等)2.变量名区分大小写,如:A 与 a 是两个不同变量。3.不允许使用JavaScript关键字和保留字做变量名。任务在右边编辑器的第 7 行补充代码,在 var 后,填写变量名,如“myname“。 变量命名 var my_first_variable=“变量“ ; 确定你的存在(变量声明)我们要使用盒子装东西,是不是先要找到盒子,那在编程中,这个过程叫声明变量,找盒子的动作,如何表示:声明变量语法: var 变量
8、名; var 就相当于找盒子的动作,在 JavaScript 中是关键字(即保留字),这个关键字的作用是声明变量,并为“变量“准备位置(即内存)。var mynum ; /声明一个变量 mynum当然,我们可以一次找一个盒子,也可以一次找多个盒子,所以 Var还可以一次声明多个变量,变量之间用“,“逗号隔开。var num1,mun2 ; /声明一个变量 num1注意:变量也可以不声明,直接使用,但为了规范,需要先声明,后使用。任务在右边编辑器的第 7 行声明了一个变量 mya,代码程序有问题,我们来修改下:1 使用正确声明语法,将 vra 修改为 var2.将变量名 3mya 修改为 mya
9、 声明变量 var mya; mya=5; alert(“mya 的值是:“+mya); 表达出你的想法(表达式)表达式与数学中的定义相似,表达式是指具有一定的值、用操作符把常数和变量连接起来的代数式。一个表达式可以包含常数或变量。我们先看看下面的 JavaScript 语句:生活中“再见”表达方法很多,如:英语(goodbye)、网络语(88)、肢体语(挥挥手)等。在 JavaScript 表达式无处不在,所以一定要知道可以表达哪些内容,看看下面几种情况:注意:串表达式中mychar 是变量注意:数值表达式中 num 是变量注意:布尔表达式中 num 是变量任务小明有 10元钱,买了一个本,
10、花了 5 元,小红说:“你剩下的钱加上我的 6元钱,就可以买个铅笔盒了。1.在右边编辑器的第 7 行,定义变量 num1,并计算小明剩下多少钱。2.在右边编辑器的第 8 行,定义变量 num2,并计算小红花多少钱买铅笔盒。 表达式 var num1; num1=10-5; var num2=num1+6; document.write(“小明还剩:“+num1+“元“+“); document.write(“小红花:“+num2+“元买个铅笔盒“); 我还有其它用途( +号操作符)操作符是用于在 JavaScript 中指定一定动作的符号。(1)操作符看下面这段JavaScript代码。sum
11、 = numa + numb;其中的“=“和“+“都是操作符。JavaScript中还有很多这样的操作符,例如,算术操作符(+、-、*、/等),比较操作符(、=、 +操作符 var mynum= 1+5 ; var mychar= “中“+“国“ ; document.write(“mynum的值:“+mynum+“); document.write(“mychar 的值:“+mychar); 自加一,自减一 ( +和- -)算术操作符除了(+、-、*、/)外,还有两个非常常用的操作符,自加一“+”;自减一“-”。首先来看一个例子:mynum = 10;mynum+; /mynum的值变为 1
12、1mynum-; /mynum的值又变回10上面的例子中,mynum+使 mynum 值在原基础上增加 1,mynum-使 mynum 在原基础上减去 1,其实也可以写成:mynum = mynum + 1;/等同于 mynum+mynum = mynum - 1;/等同于 mynum-任务试一试,让变量 numa 自加一,让变量 numb 自减一1. 在右边编辑器中第 9 行输入 numa+;2. 在右边编辑器中第 10行输入 numb-; +/- var numa=1; var numb=7; numa+; numb-; document.write(“numa 的值:“+numa+“);
13、 document.write(“numb 的值:“+numb); 较量较量(比较操作符)我们先来做道数学题,数学考试成绩中,小明考了 90 分,小红考了 95 分,问谁考的分数高?答: 因为“95 90”,所以小红考试成绩高。其中大于号“ 就是比较操作符,小红考试成绩和小明考试成绩就是操作数,并且是两个操作数。也就是说两个操作数通过比较操作符进行比较,得到值为真(true)和假(false)。在 JavaScript 中,这样的比较操作符有很多,这些操作符的含义如下: 看看下面例子:var a = 5;/定义 a 变量,赋值为 5var b = 9; /定义 b 变量,赋值为 9docume
14、nt.write (a=b); /a 大于或等于 b 的值吗? 结果是假(false)document.write (a!=b); /a 不等于 b的值吗? 结果是真(true)document.write (a=b); /a 等于 b 的值吗? 结果是假(false)任务实验考试成绩中,numa 考了 1 分,numb 考了 7 分,我们来比较下它们的分数。1. 在右边编辑器中第 10行输入 numanumb2. 在右边编辑器中第 11行输入 numa!=numb 比较操作符 var numa,numb,jq1,jq2; numa=1; numb=7; jq1=numanumb ; jq2=
15、numa!=numb ; document.write(“numa 大于 numb的分数吗?“+jq1+“) document.write(“numa 不等于 numb 的分数吗?“+ jq2); 我与你同在(逻辑与操作符)数学里面的“ab”,在 JavaScript 中还表示为 ab;数学中的“b 大于 a,b小于 c”是“aa numa=60; numb=70; if(numa=60 我或你都可以 (逻辑或操作符)“|“逻辑或操作符,相当于生活中的“或者”,当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”。例如:本周我们计划出游,可是周一至周五工作,所以周六或者周日哪天去都可以
16、。即两天中只要有一天有空,就可以出游了。var a=3;var b=5;var c;c=ba |ab; /ba 是 true,ab 是 false,c 是 true逻辑或操作符值表:注意: 如果 A 为真,A | B 为真,不会在执行B; 反之,如果 A 为假,要由 B 的值来决定 A | B 的值。任务在右边编辑器中第 10行补充代码,在“jq1=”后输入numanumb | numa=numb,看看结果是什么。 逻辑或 var numa,numb,jq1; numa=50; numb=55; jq1=numanumb|numa=numb; ; document.write(“jq1 的值是
17、:“+jq1+“) 是非颠倒(逻辑非操作符)“!“是逻辑非操作符,也就是“不是“的意思,非真即假,非假即真。好比小华今天买了一个杯子,小明说:“杯子是白色的“,小亮说:“杯子是红色的”,小华说:“小明说的不是真话,小亮说的不是假话“。猜猜小华买的什么颜色的杯子,答案:红色杯子。逻辑非操作符值表:看看下面代码,变量 c 的值是什么:var a=3;var b=5;var c;c=!(ba); / ba 值是 true,! (ba)值是 falsec=!(b 逻辑非 var numa,numb,jq1; numa=60; numb=70; jq1=!(numa“) jq1=!(jq1) docum
18、ent.write(“jq1 的值是:“+jq1+“) 保持先后顺序(操作符优先级)我们都知道,除法、乘法等操作符的优先级比加法和减法高,例如:var numa=3;var numb=6jq= numa + 30 / 2 - numb * 3; / 结果为 0如果我们要改变运算顺序,需添加括号的方法来改变优先级:var numa=3;var numb=6jq= (numa + 30) / (2 - numb) * 3; /结果是-24.75操作符之间的优先级(高到低):算术操作符 比较操作符 逻辑操作符 “=“赋值符号如果同级的运算是按从左到右次序进行,多层括号由里向外。var numa=3;
19、var numb=6;jq= numa + 30 10 numa=5; numb=2; jq1=numa + 30 10 document.write(“jq2 的值是:“+jq2); 编程练习考考大家的数学,计算以下计算公式的结果。然后在浏览器中运行一下,看看结果是否跟你的结果一致。任务第一步: 在 ? 处填写你的答案。第二步: 填写完成后,运行一下,看看是不是跟你填写的结果一致。第三步: 如果你有不一致的地方,思考一下为什么跟你的不一致呢。 JS 基础 var a,b,sum; var a = 5; var b = 100%7; sum = a b document.write( “我认为
20、 a 的值是:“ +a+ “ b 的值是:“ +b+ “sum 的值是:“ +sum+“); document.write( “答案是,第一轮计算后,a 为:“+ a +“;b 为:“+b +“;第一次计算sum 为:“+ sum +“); sum = ( (+a) + 3 ) / (2 - (-b) ) * 3; document.write(“再一次计算后,我认为 a 的值是:“ + a + “ b 的值是:“ + b + “sum 的值是:“ + sum +“); document.write( “答案是,第二轮计算后,a 为:“ + a + “;b 为:“ + b +“;第二次计算su
21、m 为:“+ sum +“,sum 的类型也发生变化了。“); 第 3 章 一起组团(数组) 一起组团(什么是数组)我们知道变量用来存储数据,一个变量只能存储一个内容。假设你想存储 10 个人的姓名或者存储 20 个人的数学成绩, 就需要 10个或 20 个变量来存储,如果需要存储更多数据,那就会变的更麻烦。我们用数组解决问题,一个数组变量可以存放多个数据。好比一个团,团里有很多 人,如下我们使用数组存储5个学生成绩。数组是一个值的集合,每个值都有一个索引号,从 0 开始,每个索引都有一个相应的值,根据需要添加更多数值。任务编辑器中定义数组 myarr,并赋值 3 个学生的成绩, 验证结果窗口
22、中是否是80,60,99。 什么是数组 var myarr=new Array(); /定义数组 myarr0=80; myarr1=60; myarr2=99; document.write(“第一个人的成绩是:“+myarr 0+“); document.write(“第二个人的成绩是:“+myarr 1+“); document.write(“第三个人的成绩是:“+myarr 2+“); 组团,并给团取个名(如何创建数组)使用数组之前首先要创建,而且需要把数组本身赋至一个变量。好比我们出游,要组团,并给团定个名字“云南之旅”。创建数组语法:var myarray=new Array();
23、我们创建数组的同时,还可以为数组指定长度,长度可任意指定。var myarray= new Array(8); /创建数组,存储 8 个数据。 注意:1.创建的新数组是空数组,没有值,如输出,则显示 undefined。2.虽然创建数组时,指定了长度,但实际上数组都是变长的,也就是说即使指定了长度为 8,仍然可以将元素存储在规定长度以外。任务1.在右边编辑器的第 7 行,使用 new Array()创建一个新数组,并保存在 myarr变量中2.验证编辑器的第 8 行输出数组第一个值,在结果窗口中是否是 undefined。 创建数组 var myarr=new Array(); documen
24、t.write(“数组的第一个值:“+myarr0); 谁是团里成员(数组赋值)数组创建好,接下来我们为数组赋值。我们把数组看似旅游团的大巴车,大巴车里有很多位置,每个位置都有一个号码,顾客要坐在哪个位置呢? 第一步:组个大巴车第二步:按票对号入座大巴车的 1号座位是张三大巴车的 2号座位是李四数组的表达方式:第一步:创建数组 var myarr=new Array(); 第二步:给数组赋值myarr1=“ 张三“;myarr2=“ 李四“;下面创建一个数组,用于存储 5个人的数学成绩。var myarray=new Array(); /创建一个新的空数组myarray0=66; /存储第 1 个人的成绩myarray1=80; /存储第 2 个人的成绩myarray2=90; /存储第 3 个人的成绩myarray3=77; /存储第 4 个人的成绩myarray4=59; /存储第 5 个人的成绩注意:数组每个值有一个索引号,从 0 开始。我们还可以用简单的方法创建上面的数组和赋值:第一种方法:var myarray = new Array(66,80,90,77,59);/创建数组同时赋值第二种方法:var myarray = 66,80,90,77,59;/直接输入一个数组(称 “字面量数组”)注意:数组存储的数据可以是任何类型(数字、字符、布尔值等)任务