JavaScript中函数闭包的应用以及定时器setInterval()与setTimeout()

一.函数闭包的应用
1. 事件闭包的理解:
闭包是指有权限访问另一个函数作用域中的变量的函数.在 javascript 语言中,闭包就是函数和该函数作用域的组合.在JavaScript中任何一个函数都是一个闭包,但是嵌套的函数功能更强(闭包的作用更加强大,产生一个作用域链)
2.变量的作用域:
要理解闭包,首先必须理解 Javascript 特殊的变量作用域.变量的作用域无非就是两种:全局变量和局部变量.
Javascript 语言的特殊之处,就在于函数内部可以直接读取全局 变量.另一方面,在函数外部自然无法读取函数内的局部变量.
注:在函数内部声明变量的时候,一定要使用var命令.如果不用的话,你实际上声明了一个全局变量!不如写在函数之外.
3.如何从外部读取局部变量:
出于种种原因,我们有时候需要得到函数内的局部变量.但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才 能实现. 那就是在函数的内部,再定义一个函数.
父对象的所有变量,对子对象都是可见的,反之则不成立,从而形成js中特殊的作用域链 scope chain;
例如:



4.闭包的再一次理解:
闭包就是能够读取其他函数内部变量的函数;由于在 Javascript 语言中,只有函数内部的子函数才能读取局部 变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”. 所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁.
5.闭包的应用:
闭包可以使用在许多地方.它的最大作用有两处,一个是前面提到 的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中.
6.闭包的案例:

案例1:



	
		
		
		
	
	
	

案例2:



二.定时器setInterval()与setTimeout()
js定时器有以下两种方法:
(1).SetInterval():
按照指定的周期(以毫秒计)来调用函数或计算表达式,方法会不停的调用函数,直到clearInterval()被调用或者窗口被关闭.
(2) SetTimeout():
在指定的毫秒数后调用函数或计算表达式.
**1.setInterval();循环定时器:**固定时间间隔指定一次,像闹钟 一样,不关闭继续执行.
语法结构:
在这里插入图片描述

JavaScript中函数闭包的应用以及定时器setInterval()与setTimeout()_第1张图片
例如:每三秒弹出一个 hello



注:一直循环无法停止时直接关闭窗口
clearInterval()被调用时

例如:显示当前时间,通过按钮实现时间的停止,开始


................

	

setInterval()计时器函数

2.SetTimeout();炸弹定时器:
只执行一次,不能执行下一次了.
例如:实现一个页面的简易版时钟



	
		
		
		
	
	
		

例如: 页面加载的时候,将当前的系统时间写入页面,并且是简易版的时钟



	
		
		
		
	
	
	 	

例如:实现打字机效果



	
		
		打字机字体不动时|再闪烁
		
		
	
	
		

案例:实现无缝滚动效果
样式css



JavaScript



代码


	


你可能感兴趣的:(JavaScript中函数闭包的应用以及定时器setInterval()与setTimeout())