- 声明变量不用name
- window中的特殊属性:window.name返回空的字符串
document.querySelector();
全局变量和方法都会称为window中的属性
全局变量:自动变成window中的属性
window.document.querySelector();
- onload
- DOMContentLoaded
// 1.传统注册:加载事件
window.onload = function () {
var btn = document.querySelector("button");
btn.addEventListener("click", function () {
alert("点击效果");
});
};
//冲突:传统注册多个执行最后一个
window.onload = function () {
var btn = document.querySelector("button");
btn.addEventListener("click", function () {
alert("后者效果");
});
};
// 2.高版本注册方式:加载事件
window.addEventListener("load", function () {
var btn = document.querySelector("button");
btn.addEventListener("click", function () {
alert("起效果");
});
});
// 新版本不会出现多个监听事件冲突
window.addEventListener("load", function () {
var btn = document.querySelector("button");
btn.addEventListener("click", function () {
alert("起效果2");
});
});
document.addEventListener("DOMContentLoaded", function () {
alert("hellow");
});
- resize
window.addEventListener("resize", function () {
console.log("变化");
// 获取到窗口宽高值
console.log(window.innerWidth);
console.log(window.innerHeight);
if (window.innerWidth <= 800) {
div.style.display = "none";
} else {
div.style.display = "block";
}
});
1. setTimeout(调用函数,延迟时间) 执行一次
//直接写函数
setTimeout(function () {
console.log("时间到了");
}, 2000);
//直接写函数名
function calback() {
console.log("爆炸了");
}
setTimeout(calback, 3000);
可以给定时器声名标识符
var time1 = setTimeout(calback, 3000);
clearTimeout(定时器名字)
setInterval(执行函数,间隔时间)
setInterval(function () {
console.log("继续输出");
}, 1000);
setInterval(countDown, 1000);
// 防止第一次调用出现卡顿:先进性调用一次倒计时函数
countDown();
// 2.开启定时器
setInterval(countDown, 1000);
// 3.声明函数:(倒计时效果)
function countDown() {
// a.计算距离结束总的的毫秒数
var nowTime = +new Date();
var times = (inputTime - nowTime) / 1000;
// 5.剩余时间
// 小时计算小时
var h = parseInt((times / 60 / 60) % 24);
h = h < 10 ? "0" + h : h;
hour.innerHTML = h;
var m = parseInt((times / 60) % 60);
m = m < 10 ? "0" + m : m;
minute.innerHTML = m;
var s = parseInt(times % 60);
s = s < 10 ? "0" + s : s;
second.innerHTML = s;
}
var inputTime = +new Date("2022-08-05 01:00:00");
clearInterval(定时器名字)
var btns = document.querySelectorAll("button");
// 2.注册点击事件
var timer = null; //定义全局变量:作为对象空最合适
btns[0].addEventListener("click", function () {
timer = setInterval(function () {
console.log("你好");
}, 1000);
});
btns[1].addEventListener("click", function () {
clearInterval(timer);
});
var btn = document.querySelector("button");
// 全局变量
var time = 5;
btn.addEventListener("click", function () {
// 点击之后禁用开启
this.disabled = true;
// 设置定时器:修改里面内容
var timer = setInterval(function () {
// 判断条件
if (time == 0) {
clearInterval(timer);
// 注意此处的btn是在定时器里面,定时器里的this指向window,所以不可以贸然使用
btn.disabled = false;
btn.innerHTML = "发送";
// 全局变量:初始值为5
time = 5;
} else {
btn.innerHTML = "还剩下" + time + "秒";
time--;
}
}, 1000);
});
console.log(this);
setTimeout(function () {
console.log(this); //window
}, 1000);
// 调用对象方法指向:对象
var o = {
sayHi: function () {
console.log(this); //this指向的是o这个对象
},
};
o.sayHi(); //o这个对象
var btn = document.querySelector("button");
// btn.onclick = function () {
// console.log(this); //指向button
// };
btn.addEventListener("click", function () {
console.log(this); //指向button
});
function Fn() { console.log(this); //this:new一下开辟新的空间,this指向的是这个空间。又因为把这个空间赋 值给了fun,所以最终指向的就是fun } var fun = new Fn("小明"); //指向实例对象(Fn对象里包含元素)
Fn