DOM document object model 文档对象模型
COM 视图样式模型
BOM browser object model 浏览器对象模型
在整个js里,唯一一个顶层对象叫 window,window不仅是js的全局对象、顶层对象。同时也能指代浏览器窗口,BOM的api基本都是window的子属性
let、var、const
var声明的变量会存在 变量提升特性【在声明之前可以使用,并不报错】
let和const并没有变量提升。let和const所声明的变量之前的区域称为当前变量的作用域死区。
var所声明的全局变量会成为全局对象的属性, 而let和const声明的则不会。
没有被声明就给一个变量赋值,当前变量会泄露成为window对象的子属性(这种行为是非常非常不好的)
跟网址相关的:
协议:location.protocol
主机名(域名、网址前缀):location.hostname
端口号:location.port
路径:location.pathname
查询的信息:location.search
完整的地址:location.href (如何在当前页面对href赋值,可实现页面跳转)
哈希值: location.hash
主机名+端口:location.host
history: 管理历史记录
length:返回当前窗口的历史记录的数量
back() 加载history对象列表中的前一个URL
forward() 加载history对象列表中的下一个URL
go(-1)
navigator:记录了浏览器的各种信息
userAgent:请求时携带的请求头部信息
window对象的方法:
close() 关闭当前窗口(只能关闭由open方法打开的窗口)
open(网址) 打开一个窗口(新)
scrollTo(x, y) 把内容滚动到指定的坐标
scrollBy(x, y) 指定像素值来滚动
alert()
confirm() 带了确认按钮的弹窗 有返回值
prompt() 带输入框的弹窗
window.onload 页面加载完成事件:当整个页面所有的元素全部加载成功的时候 触发
window.onscroll 页面滚动条位置发生改变
window.onresize 页面尺寸发生改变
window.onfocus 页面获得焦点
window.onblur 页面失去焦点