一、能够所处什么是BOM
答:BOM(Browser Object Model) 浏览器对象模型 ,提供了独立于内容而与浏览器窗口进行交互的对象。其核心对象是window。(后退 前进 刷新等)。
附注: DOM(Document Object Model).文档对象模型,主要是操作页面元素。其顶级对象是document
二、 能够知道浏览器的顶级对象window
答:window.
三、能够写出页面加载事件以及注意事项
答:1、window.onload = function() {
} 有了window.onload 就可以吧JS代码放到页面元素的上方,因为onload是等页面全部加载完再执行函数
window.onload传统注册事件只会执行最后一个。用window.addEventListener()则没有冲突问题
document.addEventListener('DOMContentLoaded',fucntion() {}) IE9才支持,当DOM加载完毕 不包括样式表。图片,flash等,因此这个对于图片比较多 加载比较慢的页面合适 ,可以减少等待时间,提升用户体验。
2、调整窗口大小事件 window.onresize = function() {}
四、能够写出两种定时器函数并指出区别
1、setTimeout()
setTimeout(function(){},2000) //时间单位是毫秒,可省略,默认是0 可以直接写函数 也可以写函数名
setTimeout(function(),2000) //调用函数名
setTimeout(‘function()‘,2000) //也行 函数名带括号 在引号里 不推荐使用
1-2:停止定时器,例如点击暂停按钮:btn.addEventListener('click',function() { clearTimeout( timer); } ) //timer为你要停止的定时器的名称
2、setInterval()
window.setInterval( ,1000) //时间是间隔多少时间就 ,重复调用 window可以省略
2-2 :停止定时器 clear timer = setInterval(function() { } ,1000);
clearInterval()
区别:前者仅调用一次,后者重复调用
因为都省略了window 所以this都是指向window
五、JS的执行机制
答:js是单线程执行 ,H5中提出Web Worker 标准 ,允许JS创建多个线程,于是JS中出现了同步和异步。
console.log(1);
setTimerout(function() {
console.log(3);
},0);
console.log(2)
虽然打印3没有延时,但是打印结果仍然是123,这是因为JS自动分了同步任务和异步任务。
同步任务:(主线程执行栈)
异步任务:(回调函数,放到任务队列中执行 )
1、普通事件 click ,resize ;
2、资源加载 load error;
3、定时器,setInterval setTimeout
JS执行机制:先执行栈中的同步任务,再把异步任务放入执行任务 。主线程不断的重复获取任务、执行任务、再获取、再执行,称为时间循环(event loop)(不断检查异步任务栏里有没有新任务,有就执行,点击事件只有点了才会放到异步任务的任务列表中)
六、使用location对象完成页面之间的跳转
答:location属性用于获取或者设置窗口的 url,并且可由用于解析URL,这个属性会返回一个对象
URL格式: 1 protocol ://host[]
location 常用属性对应获取上述的元素,主要看href 和 search