一:JavaScript流程控制
什么是流程?
程序中的三种基本流程结构:
- 顺序结构
- 分支结构
- 循环结构
顺序结构:按照顺序一条一条的执行代码,从上到下。
分支结构:执行代码的时候,可以根据条件进行选择,条件越多对应的结果越多,分支也就越多。例如if…else…语句,switch语句
循环语句:用来重复不断的做一件事,for循环,while循环,do…while循环
3.1 if…else 语句
1.if...else语句是在指定的条件成立时执行代码,在条件不成立时执行else后的代码。
语法:
if(条件){
条件成立时执行的代码
}
else{
条件不成立时执行的代码
}
2.多重判断(if..else嵌套语句)
要在多组语句中选择一组来执行,使用if..else嵌套语句。
语法:
if(条件1){
条件1成立时执行的代码
}
else if(条件2){
条件2成立时执行的代码
}
...
else if(条件n){
条件n成立时执行的代码
}
else{
条件1、2至n不成立时执行的代码
}
3.2 switch… case
switch 语句用于基于不同条件执行不同动作.
switch(表达式){
case 值1:
执行代码块1;
break;
case 值2:
执行代码块2;
break;
...
case 值n:
执行代码块n;
break;
default:
与 case值1 、 case值2...case值n 不同时执行的代码
}
语法说明:switch必须赋初始值,值与每个case值匹配。满足执行该 case 后的所有语句,并用break语句来阻止运行下一个case。如所有case值都不匹配,执行default后的语句。
3.3 for循环
for循环是编程语言中一种循环语句,而循环语句由循环体及循环的判定条件两部分组成,for语句结构:
for(初始化变量;循环条件;循环迭代){
循环语句 ;
}
For循环 用来重复不断的做一件事。
循环执行流程顺序,如下图所示
案例讲解部分,可参考网页换肤案例。
4.JavaScript BOM对象
4.1JavaScript定时器
在JavaScript中,我们可以在设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。计时器类型:
①一次性计时器:仅在指定的延迟时间之后触发一次。
②间隔性触发计时器:每隔一定的时间间隔就触发一次。
方法 |
描述 |
setTimeout() |
指定的延迟时间之后来执行代码 |
clearTimeout() |
取消setTimeout的设置 |
setInterval() |
每隔指定的时间执行代码 |
clearInterval() |
取消setInterval的设置 |
4.1.1 一次性计时器setTimeout()
setTimeout()计时器,在载入后延迟指定时间后,去执行一次表达式,仅执行一次。
语法:setTimeout(代码,延迟时间);
参数说明:
1. 要调用的函数或要执行的代码串。
2. 延时时间:在执行代码前需等待的时间,以毫秒为单位(1s=1000ms)。
取消计时器clearTimeout()
setTimeout()和clearTimeout()一起使用,停止计时器。
语法:clearTimeout(id_of_setTimeout)
参数说明:id_of_setTimeout:由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行代码块。
4.1.2 间隔性定时器setInterval()
计时器setInterval():在执行时,从载入页面后每隔指定的时间执行代码。
语法:setInterval(代码,交互时间);
参数说明:
1. 代码:要调用的函数或要执行的代码串。
2. 交互时间:周期性执行或调用表达式之间的时间间隔,以毫秒计(1s=1000ms)。
返回值:一个可以传递给 clearInterval() 从而取消对"代码"的周期性执行的值。
调用函数格式(假设有一个clock()函数)
setInterval("clock()",1000)或setInterval(clock,1000)
取消计时器clearInterval()
clearInterval() 方法可取消由 setInterval() 设置的交互时间。
语法:clearInterval(id_of_setInterval)
参数说明:id_of_setInterval:由 setInterval() 返回的 ID 值。
每隔 100 毫秒调用 clock() 函数,并显示时间。当点击按钮时取消定时
4.2JavaScript内置对象-日期对象
5.JavaScript DOM对象
5.1 DOM对象 控制HTML元素
HTML文档可以说由节点构成的集合,DOM节点有:
1、元素节点:上图中<html>、<body>、<p>等都是元素节点,即标签。
2、文本节点:向用户展示的内容,如<li>...</li>中的JavaScript、HTML、CSS等文本。
3、属性节点:元素属性,如<a>标签的链接属性href="http://www.baidu.com"。*/
节点属性
方法 描述
nodeName 返回一个字符串,其内容是给定节点的名字
nodeType 返回一个整数,这个数值代表给定节点的类型
元素类型 节点类型
元素 1
属性 2
文本 3
注释 8
文档 9
nodeValue 返回给定节点的当前值
遍历节点树
方法 描述
childNodes :返回一个数组,这个数组由给定元素节点的子节点构成
firstChild:返回第一个子节点
lastChild:返回最后一个子节点
parentNode:返回一个给定节点的父节点
nextSibling:返回给定节点的下一个节点
previousSibling:返回给定节点的上一个节点
DOM操作:
方法 描述
createElement(element):创建一个新的元素节点
createTextNode():创建一个包含着给定文本的新文本节点
appendChild():指定节点的最后一个子节点列表之后添加一个新的子节点
insertBefore():将一个给定节点插入到一个给定元素节点的给定子节点的前面
removeChild():从一个给定元素中删除一个字节点
replaceChild():把一个给定父元素里的一个子节点替换为另一个节点DOM操作:
getElementsByName()方法 返回带有指定名称的节点对象的集合。
语法:document.getElementsByClassName(name)
与getElementById() 方法不同的是,通过元素的 name 属性查询元素,而不是通过 id 属性。
注意:
1. 因为文档中的 name 属性可能不唯一,所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。
2. 和数组类似也有length属性,可以和访问数组一样的方法来访问,从0开始。
getElementsByTagName()方法
返回带有指定标签名的节点对象的集合。返回元素的顺序是它们在文档中的顺序。
语法: document.getElementsByTagName(Tagname)
说明:
1. Tagname是标签的名称,如p、a、img等标签名。
2. 和数组类似也有length属性,可以和访问数组一样的方法来访问,所以从0开始。
区别getElementByID,getElementsByClassName,getElementsByTagName
以人来举例说明,人有能标识身份的身份证,有姓名,有类别(大人、小孩、老人)等。
1. ID 是一个人的身份证号码,是唯一的。所以通过getElementById获取的是指定的一个人。
2. Name 是他的名字,可以重复。所以通过getElementsByName获取名字相同的人集合。
3. TagName可看似某类,getElementsByTagName获取相同类的人集合。如获取小孩这类人,getElementsByTagName("小孩")。