2021-06-05

一:JavaScript流程控制

什么是流程?

程序中的三种基本流程结构:

  1. 顺序结构
  2. 分支结构
  3. 循环结构

顺序结构:按照顺序一条一条的执行代码,从上到下。

分支结构:执行代码的时候,可以根据条件进行选择,条件越多对应的结果越多,分支也就越多。例如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 switchcase 

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循环 用来重复不断的做一件事。

循环执行流程顺序,如下图所示

2021-06-05

案例讲解部分,可参考网页换肤案例。

 

 

 

 

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("小孩")。

 

上一篇:JS-定时器函数!


下一篇:JS定时器是什么