JS是由三部分组成的:
ECMAScript 基础语法
DOM 文档对象模型
BOM 浏览器对象模型
BOM中其实东西不多,就是一些概念东西,只要知道下就可以了,像open() close()是打开或关闭一个网址。
还有就是定时器,这个挺重要的,很多特效需要用到,必须要知道其中的各种工作原理。定时器分为两种:
setTimeout() // 间隔多长时间执行一次,只执行一次
setInterval() // 间隔多长时间执行,是不间断的执行
有了定时器就会有对应的消除定时器,也最好用对应的:
clearTimeout: 清空定时器
clearInterval() 清空定时器
两个作用其实一样的,但工作中为了以后方便维护还是用对应的方便。
BOM中还有一个单词叫onload,它的意思是当页面加载完成后触发,这个一般会用在图片的函数中,因为图片加载时很慢的,所以在有图片的路径请求时让JS代码在window.onload中执行,这样更容易获取图片。
还有就是变量的作用域和函数预解析,这两个就一些概念东西,程序中用的不多,但也很重要,你去面试时,有些公司有笔试题的话,考的概率是非常大的。所以我们还是要了解下。
这个如果能很清楚的知道输出几个数,输出的都是什么?那这块基本没什么问题了。
这里面先会执行函数的预解析把函数申明调到前面:
由于里面只有a有var,所以它是局部变量,其他的b和c都是全局变量,整个页面都可以取到它的值,而a只能在函数里取得到。所以最后输出的值是:前五个都是9,最后一个报错。因为它拿不到a这个变量。