六九:函数的变量提升
函数的变量提升没有var高,var是最高的。
 先提var,再提函数
 
 解析:
 1、4行打印之前没有定义变量,预解析触发变量提升
 2、先提var,再提函数。所以先把var提升到最上面,然后提升函数到var下面
 3、3行的提升的函数覆盖了2行的提升变量,所以4行打印出来的是函数
 4、继续向下执行,5行a覆盖3行的函数,因为6行函数没有赋值,所以9行还是维持5行的赋值,所以9行a不是函数
七十:JavaScript中的window对象的基本理解
如果JS是地球,那window就是空气 。
 window可以省略(不写,看不见,不显示,但是存在)
 
 window是全局的,最大的最外层的大对象,谁都可以使用
 如果不用var进行变量申明,则会默认对象b是window的
 
七一:window深入及检测浏览器的属性
1、window
全局的,最外层的大对象
 所有的变量、属性、方法都可以挂在window上,方便在任何地方调用
 
 如上图,一般情况下,一个函数无法获取另一个函数里面的值。但这里的c是被window定义的,运行a();,给window挂上一个c=10,window可以在任何地方调用,所以b可以获取c。
全局变量
挂在window下的变量即为全局变量,在任何地方都可以调用
 缺点:可能造成全局污染
2、检测浏览器属性
(1)宽度/高度
//检测浏览器可视范围的宽度
	console.log(window.innerWidth);  
第一次运行是显示从左到右的最宽距离,即页面宽度
 
 后面再刷新页面,就是可视部分的宽度
 
 
<script>
	//检测浏览器可视范围的宽度 
	console.log(window.innerWidth);  
	//检测浏览器可视范围的高度
	console.log(window.innerHeight)
</script>
效果与宽度一致
 
(2)距离屏幕左/上的距离

 
 
七二:window中的定时器
window有两种定时器
 是函数
1、延时定时器
(1)window.setTimeout()
只执行一次
 有两个参数,window.setTimeout(fn , 1000)
 fn:是一个函数,即定时时间过了之后要执行的函数操作
 1000:这里是时间,单位毫秒,1000ms = 1s
 
(2)延时定时器关闭 – window.clearTimeout();

 当关闭时间=运行时间,会先执行打开在执行关闭,所以要让打开不执行,关闭时间至少比打开提前1ms
2、轮循定时器
(1)window.setInterval()
一直运行,不会停止。没过一定时间轮询一次
 window.setInterval(fn , 1000)
 fn:是一个函数,即定时时间过了之后要执行的函数操作
 1000:这里是时间,单位毫秒,1000ms = 1s
 
 
(2)轮循定时器关闭 – window.clearInterval();

七三:window中的打开与关闭页面的方法
1、打开 - open()
在新页面打开网站或者本地页面
 参数就是网站地址
<script>
	window.open('https://www.baidu.com')
</script>
2、关闭 - close
关闭当前页面
<script>
	window.open('https://www.baidu.com');
	setTimeout(
		function(){
			close();
		},3000
	);
</script>
七四:window一些特性
1、window.window
window里面还有window,理论上无限制
 
 
2、关键字–window
在script最外层,部分关键字指向window(即在最外层,就是window)
(1)this
代表当前环境
 查询当前,反馈window
 
 使用也没问题,等同于window.alert(3);
 
(2)self
翻译为自己
 同样代表window
 
 等同于——window.window.alert(5)
 
(3)top
指对外层对象是什么
 同样代表window
 
 等同于——window.window.alert(2)
 



















