JavaScript

JavaScript

一、JavaScript简介

(一)JavaScript的概念

	JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
	
	java比较火 , livescript -- >javascript 蹭热度

(二)JavaScript的特点

1、几乎每个浏览器都有JavaScript的解析引擎。 
   JavaScript 有版本的 5.0   6
    js 5是基础   6是5的基础上进行优化。
    
2、不需要编译,直接由浏览器解析运行。

(三)JavaScript的作用

1.制作动态效果  https://www.jq22.com/
2.动态的修改html上标签元素
3.配合ajax实现一些异步技术 (弹幕、直播送飞机、扔鸡蛋)

目前很多网站里面都用了js。  js衍生了大量的工具库、比如 Vue、angular、react、Jquery等等....

二、JavaScript的组成

EcmaScript  js的语法部分
dom         文档对象模型
bom         浏览器对象

三、JS的组成之ECMAScript

(一)ECMAScript简介

1、ECMAScript实际上是一种脚本在语法和语义上的标准 es5
2、包含了JS的基本语法和基本对象

(二)基本语法

1.引入方式

1、内部JS:在HTML网页中通过script标签直接嵌入JavaScript脚本代码。可以出现在页面的任何位置,且可以写多个。



2、外部JS:外链式是单独定义脚本文件(*.js),再将这个脚本文件通过script标签的src属性引入到HTML页面中。一个页面中可以引用多个外部js文件。
注意事项:引用外部js文件的script标签里不能再写自定义的javaScript代码。



内部js

<body>
    今天是星期二
    <script>
        alert('你知道今天是星期几吗');
        //alert('今天星期二');
    </script>
</body>

外部js

外部js  demo.js
alert('今天星期二');
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

<body>
    今天是星期二
    <script>
        alert('你知道今天是星期几吗');
        //alert('今天星期二');
    </script>
</body>

</html>
<script src="./js/demo.js"></script>

2.注释

1、单行注释://注释的内容
2、多行注释:/* 注释的内容 */

3.数据类型

JS中也存在很多的数据类型,以下给大家列出常用的几种数据类型

java:
byte short int long double float boolean char 基本八大数据类型
String 

java声明变量的方式
int a = 10;


(1)Undefined:Undefined类型只有一个值即undefined。当声明的变量未初始化时,该变量的默认值就是undefined。
(2)Object:表示对象的类型,比如时间、数组等对象
(3)Boolean:表示真假,只有两个值true和false。
(4)Number:表示任意数字,在JS中所有值类型统称为数字类型。
(5)String:字符串类型用单引号或者双引号赋值。


我们可以通过typeof(变量名)来查看一个变量所属的数据类型。
	

4.变量

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>变量</title>
</head>
<body>
    
</body>
<script>
    var a = 10;
    console.log( typeof( a ) );    //number
    a = "abc";
    console.log( typeof( a ) );     //string
    a = true;   
    console.log( typeof( a ) );   //boolean

    console.log( typeof(c) );  //undifined
</script>
</html>

5.运算符

1、算术运算符:+  -   *  /  %   ++   -- 等。
2、赋值运算符:=   +=   -=   *=  /=   %= 等。
3、比较运算符:> 、< 、>= 、<=、==、!=、===(全等)
4、逻辑运算符:&&(短路与)、||(短路或)、!(非)
5、条件(三元)运算符:表达式 ? 值1 : 值2 (表达式为true取值1,表达式为false取值2) 
以上所有运算符的使用与java类似。


6.流程控制



1、if...else...  

  if(表达式){
	//执行分支
  }else{
	//如果不满足if,执行else分支
  }


2、switch 
	var i = 10;
	switch(i){
		case 1:
			break;
		case 2:
			break;
		case 3:
			break;
		default:
			break;
    }


3、while  案例:打印1~100之间所有的整数

while(循环条件){
	//循环执行的语句  循环体
}


4、do...while  案例:打印1~100之间的偶数
do{
	循环体
}while(循环条件);


5、for  案例:打印1~100之间包含7的整型数字

for(var i = 1;i<100;i++){

}

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>流程控制</title>
</head>
<body>
    
</body>


<script>
    //打印1~100之间所有的整数
    // var i = 1;
    // while(true){
    //     console.log( i );
    //     i++;
    //     if(i>100){
    //         break;
    //     }
    // }

    //do...while  案例:打印1~100之间的偶数
    // var a  = 2;
    // do{
    //     console.log(a);
    //     a+=2;
    //     if(a>100){
    //         break;
    //     }
    // }while(true);

    //for  案例:打印1~100之间包含7的整型数字
    //7 17 27 37 47 57 67 70-79  87 97

    // for(var i = 1;i<100;i++){
    //     if(i%10==7 || parseInt(i/10)==7){
    //         console.log(i);
    //     }
    // }
</script>
</html>

JavaScript-函数

1、Function函数

在java中定义方法:

public void check(int a,String b){

}

check(10,"abc");


函数的定义:

function 方法名(形式参数列表){方法体}(推荐使用);

function check(a,b){
	
}


函数的好处:
1.方法(函数)定义后,需要执行,否则方法的代码不会自动运行。
2.方法(函数)可以配合js事件完成效果
3.抽取代码到方法中,重复调用,提高代码可重用性

js函数的特点:
(1)方法定义时,形式参数类型不用写,返回值类型也不写
(2)方法是一个对象,定义相同方法名会被覆盖
(3)在JS中方法的调用只和方法名有关与方法的参数无关


第一种:  无参无返
function 函数名(){
		
}

第二种:  有参无返
function 函数名(参数1,参数2....参数n){

}

第三种: 有参有返
function  函数名(a,b){
	return 结果
}


第四种: 无参数有返回
function 函数名(){
	return 结果
}


// console.log(arr.join("-")); //苹果-香蕉-榴莲
// console.log(arr.push("提子","哈密瓜","西瓜","香瓜"));   //类似 集合的    add   list.add();
// console.log(arr);

var arr = ['a','b','c','d'];
console.log(arr);
```

3、Date 日期对象

1、创建日期对象:var now = new Date() 获取当前时间。

2、日期对象的常用方法:
(1)toLocaleString():根据本地时间格式,把 Date 对象转换为字符串。 (常用)
(2)getTime():返回 1970 年 1 月 1 日至今的毫秒数
(3)getHours():返回小时数。
(4)getMinutes():返回分钟数。
(5)getSeconds():返回秒数。

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>

<script>

    var now = new  Date();
    console.log(now.getTime());
    console.log(now.getHours(),now.getMinutes(),now.getSeconds());
    console.log(now.toLocaleString());
    console.log(now.toLocaleDateString());
    //在java中 格式化时间   SimpleDateFormate
</script>
</html>

4、Math数学对象

1、创建:Math对象不用创建直接使用。使用时直接调用方法,如:Math.方法名();
2、常用方法:
(1)random():返回 0 ~ 1 之间的随机数
(2)max(x,y):返回 x 和 y 中的最大值
(3)min(x,y):返回 x 和 y 中的最小值
(4)ceil(x):对数进行向上取整       
(5)floor(x):对数进行向下取整
(6)round(x):把数四舍五入为最接近的整数
(7)abs(x):返回数的绝对值
3、属性:PI,圆周率

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组对象</title>
</head>
<body>
    

    <script>
        // for(var i = 0 ; i <10;i++){
        //     console.log(Math.random());
        // }

        //打印1-10以内的整数
        console.log( parseInt( Math.random()*10 ) + 1 );   
        //求最值
        console.log(Math.max(10,11,2,3,99,-100));
        console.log(Math.min(10,11,2,3,99,-100));
        //取整
        console.log(Math.ceil(5.3));    //6
        console.log(Math.floor(5.3));   //5
        console.log(Math.round(5.3));   //5
        //绝对值
        console.log( Math.abs(-5));

        //圆周率
        console.log(Math.PI);
    </script>
</body>
</html>

5、String字符串对象(重要)

1、创建:
(1)var str1 = "abc"; // string  
(2)var str2 = new String("abc"); // object  了解

2、常用方法:
(1)获取字符串的长度 str1.length
(2)是否以某个字符开头 startsWith()
(3)是否以某个字符结尾 endsWith() 
(4)截取字符串
	a、substring(起始下标,结束角标)
	b、substr(起始下标,截取长度)
(5)根据某个字符拆分字符串 返回数组 split()
 (6) 判断字符串中是否存在指定字符  indexOf()
 (7) 转换大写  toUpperCase()
 (8) 转换小写  toLowerCase()


代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>

    var str = 'i love java';
    console.log( str.length );
    console.log( str.startsWith("i"));
    console.log( str.endsWith("java"));
    console.log( str.substring(3) ); //ove java
    console.log( str.substring(3,5) ); //ov  
    console.log( str.substr(3,3) ); //ove
    console.log(str.split(" "));   // ["i", "love", "java"] 
    console.log(str.indexOf("p"));   // p不在   返回的是-1
    console.log(str.indexOf("j"));   // 返回的是7  j在字符串中的索引位置
    console.log(str.toUpperCase())  //大写
    console.log(str.toLowerCase()); //小写
</script>
</html>

8、RegExp正则表达式对象 校验

1、单个字符:如 [a]、 [ab] 、[a-zA-Z0-9]
2、元字符:元字符就是指那些在正则表达式中具有特殊意义的专用字符   \d 任意数字    \w 任意数字字母下划线
3、量词符号:
	?:表示出现0次或1次
	*:表示出现0次或多次
	+:表示出现1次或多次
	{m,n}:表示m=<数量<=n
4、开始结束符号:
	^ 开始
	$ 结束
5、创建正则表达式对象:
	(1)var reg = new RegExp("正则表达式");
	(2)var reg = /正则表达式/;
6、测试正则验证的方法:
	test(参数):验证指定的字符串是否符合正则定义的规范

7.案例 匹配手机号 11位  133  134 135 137 开头的 11位手机号

匹配9位数的qq号
var reg = /^[1-9]\d{8}$/

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>


<script>
    // 创建 正则表达式 
    //var reg = /^[a-z]$/;    //能够匹配单个小写字母
    //var reg = /^[a-z]{1,}$/; //能够匹配多个小写字母  ?  *  + {m,n}
    //var reg = /^[a-z]+$/;    //能够匹配多个小写字母  ?  *  + {m,n}
    // var reg = /^[a-zA-Z]+$/;    //能够匹配多个字母  ?  *  + {m,n}
    //var reg = /^[0-9]$/;        //匹配一个数字
    //var reg = /^[0-9]{1,}$/;        //匹配多个数字
    //匹配手机号 11位  133  134 135 137 开头的 11位手机号
    // var reg = /^13[3457]\d{8}$/;   // \d 同等于 [0-9]
    //匹配9位数的qq号 
    //var reg = /^[1-9]\d{8}$/;
    //匹配任意数量 字母、数字 _ 
    var reg = /^\w*$/;    // \w 同等于   [a-zA-Z0-9_] 任意字母数字_
    var a = "34567a_8901";
    console.log(reg.test(a));

</script>
</html>

(七) 事件

1、元素被执行某种操作,触发某些代码,事件用来侦查元素行为
2、如何为页面元素对象绑定事件
	(1)在标签中指定事件的属性:<button id="btn" onclick="func01()">点我啊</button>
	需要在脚本中,先行定义好func01这个方法~
	(2)获取标签元素绑定事件:document.getElementById("btn").onclick = function(){}
	第二种绑定事件用到的是匿名函数,直接书写方法体代码即可
3、常见事件	

image

4、onclick:单击事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=\, initial-scale=1.0">
    <title>点击事件</title>
</head>
<body>
    
    <button type="button" onclick="money()">点击致富</button>
    
</body>

<script>
    function money(){
        alert("支付宝到账:一个亿");
    }
    
</script>
</html>

效果图:

image

6、onchange:内容改变事件

onchange ,内容改变事件,一般用于select 下拉列表,当用户选择不同选项会触发事件.

常用案例: 地址 比如 省市区街道联动的效果

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function changeMn(){
            console.log("内容改变了");
        }
    </script>
</head>
<body>
    
    <select onchange="changeMn()">
        <option>请选择</option>
        <option>貂蝉</option>
        <option>王昭君</option>
        <option>杨玉环</option>
        <option>西施</option>
    </select>
</body>
</html>

7、onmouseover/onmouseout: 鼠标从某元素移入或移开事件

效果图:

image

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div onmouseover="a()" onmouseout="b()">

    </div>
</body>

<script>
    function a(){
        console.log("鼠标划到div上");
    }

    function b(){
        console.log("鼠标从div上移开")
    }
</script>
</html>

8、onkeydown/onkeyup:键盘按下或抬起事件


效果图:

image

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <input type="text" onkeydown="a()" onkeyup="b()"  />
</body>

<script>

    function a(){
        console.log("键盘的按键被按下");
    }
    function b(){
        console.log("键盘的按键被松开");
    }
</script>
</html>

9、onblur/onfocus:元素失去焦点或获取焦点事件

针对 文本输入框 input

效果图:

image

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <input type="text" onfocus="a()" onblur="b()"  />
</body>

<script>

    function a(){
        console.log("获得焦点");
    }
    function b(){
        console.log("失去焦点");
    }
</script>
</html>

四、DOM:可以操作html文档对象

(一)DOM简介

1、文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。通过 HTML DOM,JavaScript 能够访问和改变 HTML 文档的所有元素。
2、当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
3、HTML DOM 模型被结构化为对象树:

https://www.jq22.com/yanshi15391

document.write()

我们document获取html文档中任意一个元素包括里面文本内容,包括属性都可以获取。

image

(二)获取页面元素对象

1、查找页面元素的方法:
(1)document.getElementById(id):通过id号来查找元素。
(2)document.getElementsByTagName(name):通过标签名来查找元素。
(3)document.getElementsByClassName(name):通过类名来查找元素。
(4)document.getElementsByName(name):通过name属性名来查找元素。
2、以上四种方法中,由于页面中元素的id号是唯一的,所以通过id获取的元素个数也是唯一的;而其他三种方式获取的元素个数不唯一,所以使用时需要像数组一样去获取指定的元素。

<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>修改元素属性</title>
</body> ```

(四) 操作元素的样式

1、直接操作
	页面元素.style.css样式名称 = “值”
2、间接操作:通过类名进行操作
	页面元素.setAttribute(“class”, “类名1 类名2”)
	先将css样式定义在类中,通过行间属性class,为其设置类


在实际操作中。一般用得更多的是 间接操作;间接操作更加便利;代码复用性更高。更加适合样式频繁切换

效果图:

image

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .red{
            color:red;
            font-size: 30px;
            border: 1px solid gray;
        }
    </style>
</head>
<body>
    <p id="op">海贼王</p>
    <button onclick="add()">加样式</button>
    <button onclick="add2()">加样式2</button>
    <button onclick="hide()">隐藏op</button>
</body>

<script>

    function add(){
        var op = document.getElementById("op");
        //修改文本颜色
        op.style.color = "blue";
        //修改字体大小
        op.style.fontSize = "20px";
        //修改边框
        op.style.border = "1px solid red";
    }

    function add2(){
        var op = document.getElementById("op");
        op.setAttribute("class","red");
    }

    function hide(){
        var op = document.getElementById("op");
        op.style.display = "none";
    }

    // 1、直接操作  优先级比较高,操作比较繁琐
	// 页面元素.style.css样式名称 = “值”
    // 2、间接操作:通过类名进行操作  优先级不高,操作比较简单
	// 页面元素.setAttribute(“class”, “类名1 类名2”)
	// 先将css样式定义在类中,通过行间属性class,为其设置类
</script>
</html>

(五) 操作元素的内容 (双标签的本文内容,这种方式不能修改input的值)


1、标签对象.innerHTML  获取或者设置内容 可以包含标签
2、标签对象.innerText  获取或者设置内容 只包含文本

3、input标签对象.value 获取或者设置input框中的内容
4、innerText和innerHTML语法:
	获取:标签对象.innerHTML
	修改:标签对象.innerHTML=要修改的值

效果图:

image

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>修改元素文本内容</title>
</head>
<body>
    
    <p id="op">海贼王</p>
    <input type="text" id="hy" value="火影忍者" />
    <button onclick="change()">修改元素内容</button>
    <button onclick="getValue()">修改input内容</button>
</body>

<script>

    function getValue(){
        var hy = document.getElementById("hy");
        console.log(hy.value);
    }
    function change(){
           var op = document.getElementById("op");
           console.log(op.innerHTML);
            //修改元素内容
           //op.innerHTML = "<font color='red'>黑猫警长</font>";
           op.innerText = "<font color='red'>黑猫警长</font>";
    }



    // 1、标签对象.innerHTML  获取或者设置内容 可以包含标签
    // 2、标签对象.innerText  获取或者设置内容 只包含文本
</script>


</html>

练习

案例-计数器

image

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计时器</title>
</head>
<body>
    
    <button onclick="sub()">-</button>
    <span id="show">1</span>
    <button onclick="add()">+</button>
</body>

<script>
    function sub (){
        var show = document.getElementById("show");
        show.innerHTML = show.innerHTML - 1;
    }
    function add (){
        var show = document.getElementById("show");
        show.innerHTML = show.innerHTML*1 + 1;
    }
</script>
</html>

案例演示:全选、全不选

全选、全不选主要针对的是复选框   <input type="checkbox"/>

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <input type="checkbox" id="all" onclick="selectAll()"  />全选、全不选   <br>
    <input type="checkbox" id="fan" onclick="fanxuan()"  />反选  <br>
    <input type="checkbox" class="hobby" /> 写字
    <input type="checkbox" class="hobby" /> 打字
    <input type="checkbox" class="hobby" /> 看书
    <input type="checkbox" class="hobby" /> 写代码
</body>

<script>
    //实现全选、全不选
    function selectAll(){
       var hobby =  document.getElementsByClassName("hobby");
       var all =  document.getElementById("all");
       for(var i = 0; i < hobby.length;i++){
           hobby[i].checked = all.checked;
       }
    }

    //反选
    function fanxuan(){
       var hobby =  document.getElementsByClassName("hobby");
       
       for(var i = 0; i < hobby.length;i++){
           hobby[i].checked = !hobby[i].checked;
       }
    }
</script>
</html>

JavaScript(ecmascript+ dom + bom)

五、BOM

(一)BOM简介

1、Bom(browser object model):浏览器对象模型。在浏览器页面初始化时,会在内存创建一个全局对象,用来描述当前窗口的属性和状态,这个全局对象被称为浏览器对象模型。
2、Bom有一个核心的对象window,window对象包含了6个核心模块
	1、document对象:文档对象
	2、Frames对象:html的自框架
	3、History对象:页面的浏览记录
	4、Location对象:当前页面的地址
	5、Navigator对象:包含了浏览器相关信息
	6、Screen对象:显示屏幕相关信息

image

(二)Window

1.介绍

1、所有的浏览器都支持window对象。它表示浏览器窗口,调用函数时window可以省略。

2.创建

直接使用window对象

3.方法

1、弹窗方法

1. alert(); 显示带有一段消息和一个确认按钮的警告框  演示
2. confirm(); 显示带有一段消息以及确认按钮和取消按钮的对话框  演示
3. prompt(); 显示可提示用户输入的对话框 演示 (不常用)

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>

<script>
    //警告框 系统向用户做出提示 不需要返回
    //alert("你的余额不足,请尽快充值");

    //确认框 系统向用户做出确认提示 ,需要用户回馈
    // var result = confirm("银行卡将支持100块,确定继续吗?");
    // if(result){
    //     //联系银行进行扣费
    // }else{

    // }

    //输入框
    var result =  prompt("请输入您的姓名");
    console.log(result);
</script>
</html>

效果图:

image

image

image

2、定时器方法

1、JS中的定时器函数有两种:
	1、周期定时器:按照指定的周期来调用函数或代码串,执行多次。
	var timeid=Window.setInterval(code,millisec);
	window.clearInterval(timeid);清除定时器,使定时器停止执行函数或代码串。
	参数说明:
	code:要调用的函数或要执行的代码串。
	millisec:周期性执行或调用 code 之间的时间间隔,以毫秒为单位。

	2、超时定时器(一次性定时器):在指定的毫秒数后调用函数或代码串,只执行一次。
	var timeid=Window.setTimeout(code,millisec);
	window.clearTimeout(timeid);清除定时器,可以阻止定时器的执行。
	参数说明:
	code:要调用的函数或要执行的代码串。
	millisec:在执行代码前需等待的毫秒数。
2、案例:时钟显示



效果图:

每隔一秒显示当前系统时间

代码:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <div id="time"></div>
</body>

<script>
    
    //获取当前系统时间
    // var date = new Date();
    // document.getElementById("time").innerHTML = date.toLocaleString();

    //第一种
    // window.setInterval(function(){
    //     //获取当前系统时间
    //     var date = new Date();
    //     document.getElementById("time").innerHTML = date.toLocaleString();
    // },1000);

    
    //第二种
    function getTime(){
        //获取当前系统时间
        var date = new Date();
        document.getElementById("time").innerHTML = date.toLocaleString();
    }

    window.setInterval('getTime()',1000);

    //var timeid=Window.setInterval(code,millisec);
</script>

</html>

案例:图片轮换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>图片轮播</title>
</head>
<body>
    
    <img src="./img/dd_scroll_1.jpg" onmouseover="stop()" alt="" id="show">
</body>

<script>
    var i = 1;
    var timer = setInterval(function(){
        i++;
        if(i>6){
            i = 1;
        }
        document.getElementById("show").src = "./img/dd_scroll_"+i+".jpg" ;
    },2000);

    function stop(){
        clearInterval(timer);
    }
    //var timeid=Window.setInterval(code,millisec);
	//window.clearInterval(timeid);清除定时器,使定时器停止执行函数或代码串。
</script>
</html>

案例:3秒后显示/隐藏图片

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>超时定时器</title>
</head>
<body>
    
    <img style="display: none;" src="./img/dd_scroll_1.jpg"  id="show" />
</body>

<script>

    setTimeout(function(){
    	//document.getElementById("show").style.display = "none";  隐藏
        document.getElementById("show").style.display = "block"; //显示
    },3000);

    // var timeid=Window.setTimeout(code,millisec);
	// window.clearTimeout(timeid);清除定时器,可以阻止定时器的执行。
</script>
</html>

(三)History

1、window.history 对象包含浏览器历史。
2、方法:
	(1)history.back() - 等同于在浏览器点击后退按钮
	(2)history.forward() - 等同于在浏览器中点击前进按钮
3、想要出现前进后退的效果,必须存在路径的跳转!

效果图:

image

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <a href="test.html">跳转到test</a>
    <button onclick="forward()">前进</button>
</body>


<script>

    function forward(){
        history.forward();
    }
</script>
</html>

____________________________________________________________________________________________________________

test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试history</title>
</head>
<body>
    <!-- 点击后退按钮 回退到上一个历史记录 
        history.back()
    -->
    <button onclick="back()">后退</button>
</body>

<script>

    function back(){
        history.back();
    }
</script>
</html>

(四)Location

1、window.location 对象可用于获取当前页面地址(URL)并把浏览器重定向到新页面
2、window.location 对象在编写时可不使用 window 这个前缀。
3、创建:window.location/location
4、方法:reload():刷新当前页面
5、属性href:获取请求的URL/跳转指定的URL地址中 
6、案例:3秒跳转页面



让页面发生跳转的方式: 1.超链接  2.表单  3.location

效果图:

image

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>location</title>
</head>
<body>
    
    <div id="number"></div>
</body>

<script>
        var number = 3;
        document.getElementById("number").innerHTML = number;
        //周期   超时
        //页面加载成功后,自动跳转到百度
        setInterval(function(){
            number--;
            document.getElementById("number").innerHTML = number;
            if(number==0){
                location.href = "http://www.baidu.com";
            }
        },1000);
        
</script>
</html>
posted @ 2021-08-28 19:03  HJ0101  阅读(81)  评论(0编辑  收藏  举报