BOM、事件基础、
history
screen
navigator
document
视口宽高
innerWidth,innerHeight不考虑滚动条
高会减掉控制面板高度
document.documentElement.clientWidth
document.documentElement.clientHeight
视口宽高==html的clientWidth和clientHeight
//会减去滚动条
视口宽高和控制面板宽高之和
outerWidth,outerHeight
screenLeft,screenTop
screenX,screenY
两个值是相同的,都是指当前窗口距离屏幕左上角的坐标位置
location
当页面没有第一次渲染完成前,他们三个都是跳转页面的作用,功能一样
location.href();会产生历史记录
地址,可以获取当前页面的地址,可以设置跳转页面的地址
location.assign() //也会产生历史记录,只能设置跳转页面的地址
location.replace//不会产生历史记录
location.hash 地址栏中#后面的内容
location.searh 地址栏?后面的内容
如果有hash,hash必须写在search的后面
可以赋值产生新的历史记录
location.hash="#a"
用来分解地址栏中的地址
lacation.hostname//域名
location.port //端口号
location.protocol//协议
location.pathname//路径
screen
console.log(screen.availWidth,screen.availHeight);
//去掉附件(任务栏)屏幕宽高
console.log(screen.width,screen.height);
//屏幕宽高
**navigator**
console.log(navigator.userAgent);
浏览器版本及内核
history
history.go(1)
history.back(); 后退 go(-1)
history.forward();前进 go(1)
//历史记录的数量
console.log(history.length);
// 添加历史记录
history.pushState({a:1},"data","#a")
// 如果改变历史记录时,触发这个事件,监听浏览器历史记录跳转
window.onpopstate=function(){
console.log(history);
}
//替换当前状态的数据
history.replaceState({num:0},"0");
SSR 服务器端渲染 Server Side Render
CSR 客户端渲染 Client Side Render
事件基础 Event
事件主要有两个部分构成,一个是事件侦听,一个是事件触发
事件侦听又分为两个部分,一个是听到什么,一个是做什么
1.先侦听后派发
2.事件对象和时间目标对象 事件对象就是Event,事件目标对象EventTarget
3.事件的声音实际就是一个字符串,我们把这个字符串叫做type.事件类型
派发的事件类型必须和侦听的事件类型完全相同时才能触发
4.有时候某些事件是由系统自动派发,不许我们主动派发事件,这种叫做系统默认事件,我们主动抛发叫做自定义事件。onclick onpopstate oninput系统默认事件
//创建一个事件目标
var target=new EventTarget();
// 事件侦听对象
target.addEventListener("chifanle",chifanleHandler)
//创建一个事件,这个事件里面记录了chifanle这个声音
var evt=new Event("chifanle")
//事件派发(事件抛发)
target.dispatchEvent(evt);
事件侦听执行的函数中有且仅有一个参数,这个参数,就是被派发的事件对象
this
1.点击事件的this
2.对象方法中this,就是谁调用该方法,this就是谁,this就是当前这个对象
-
全局中的this直接打印是window
-
对象属性中使用this,因为对象没有创建完成,因为this就是执行对象外的this指向
var a=2;
console.log(this.a);
var o={
a:1,
b:this.a,//当前对象没有创建完成,所以this指向当前对象外的this指向
c:function(){
console.log(this.b);
}
}
o.c();