目标:
BOM(Browser Object Model)即浏览器对象模型,他提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window。
BOM由一系列的对象构成,并且每个对象都提供了很多方法和属性。
BOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C,BOM最初是Netspace浏览器标准的一部分。
<script>
window.addEventListener("load", function () { });
window.onload = function () { }
document.addEventListener("DOMContenLoaded", function () { });
script>
window.onload是窗口(页面)加载事件,当文档内容完全加载完成会触发该事件(包括图像,脚本文件,css文件等),就调用的处理函数。
注意:
<script>
window.addEventListener('resize', function () {
console.log('changed');
})
script>
注意:
setTimeout()
setInterval()
<body>
<script>
//1. setTimeout
//语法规范: window.setTimeout(调用函数,延时时间);
//延时时间单位毫秒
//给定时器加标识符
setTimeout(function () {
console.log('2秒');
}, 2000);//两秒
function callback() {
console.log('3秒');
}
var time1 = setTimeout(callback, 3000);
var time2 = setTimeout(callback, 3000);
script>
body>
window.clearTimeout(timeout ID)
<body>
<button>点击停止计时器button>
<script>
var btn = document.querySelector('button');
var timer = setTimeout(function () {
console.log('bang');
}, 5000);
btn.addEventListener('click', function () {
clearTimeout(timer);
})
script>
body>
setInterval()方法重复调用一个函数,每隔这个时间,就去调用一次回调函数。
<body>
<button class="begin">开启定时器button>
<button class='stop'>停止定时器button>
<script>
var begin = document.querySelector('.begin');
var stop = document.querySelector('.stop');
var timer = null; //全局变量 null是一个空对象
begin.addEventListener('click', function () {
timer = setInterval(function () {
console.log('Hello');
}, 1000);
}
)
stop.addEventListener('click', function () {
clearInterval(timer);
})
script>
body>
<body>
phone number: <input type="number"><button>sendbutton>
<script>
var btn = document.querySelector('button');
var time = 10; //定义剩余秒数
btn.addEventListener('click', function () {
btn.disabled = true;
var timer = setInterval(function () {
if (time <= 0) {
clearInterval(timer);
btn.disabled = false;
btn.innerHTML = 'sent';
time = 10;
} else {
btn.innerHTML = time + 's';
time--;
}
}, 1000)
})
script>
body>
同步任务:
同步任务都在主线程上执行,形成一个执行栈。
异步任务:
执行机制:
window对象给我们提供了一个location属性用于获取或设置窗体的URL,并且可以用于解析URL,因为这个属性返回的是一个对象,所以我们将这个属性也称为location对象。
<body>
<button>clickbutton>
<script>
var btn = document.querySelector('button');
btn.addEventListener('click',function(){
//记录浏览历史,所以可以实现后退功能
// location.assign('http://www.baidu.com');
//不记录浏览历史,所以不可以实现后退功能
//location.replace('http://www.baidu.com');
location.reload(true);//true Ctrl+F5 强制刷新
})
script>
body>
参考:pink老师教程
如有疏漏,欢迎指正。