Skip to content
本页目录

window 全局对象

在浏览器宿主环境中时,window 是顶级对象,或者说是全局对象,ES6 为了解决多环境统一问题(如在 Node 环境),新增了一个 globalThis 对象,在浏览器中与 window 相等。

因为它是顶级对象,所以 BOM 下所有属性都是它的属性,甚至 DOM 对象也属于它的属性,只是因为它是全局的,所以我们通常会省略它。

JS 前期因为设计原因,var 以及 function 也会挂载在 window 下,ES6 新增的 let、const 声明方式解决这个问题,它们声明的变量不再挂载在 window 下。

常用属性

属性重要性说明
document读取整个文档对象
history浏览器中访问过的 URL 记录
localStorage-
sessionStorage-
navigator当前浏览器相关信息
location当前 URL 信息
screen-屏幕信息
frames-一般在 iframe 中使用
self-一般在 iframe 中使用
top-一般用于判别是否在 iframe 中
scrollX-返回文档水平方向滚动的像素值
scrollY-返回文档垂直方向滚动的像素值
screen-屏幕信息对象
screenLeft-浏览器左边界距离屏幕左边缘距离
screenTop-浏览器上边界距离屏幕上边缘距离
screenX-screenLeft
screenY-screenTop

常用方法

属性重要性说明
alert()-提示框
confirm()-确认框
open(url)打开新标签页
close()-关闭由 open(url) 打开的标签页
scroll(x, y)以文档左上角 0 0 为原点进行滚动
scrollTo(x, y)scroll() 方法
scrollBy(x, y)以当前左上角为原点进行滚动
setTimeout()-
setInterval()-
clearTimeout()-
clearInterval()-
postMessage()页面跨域通信
getComputedStyle()获取元素的 CSS 样式,准确值
print() -win + p 效果一致,打印预览当前页面
getSelection()-一般在富文本处理中使用,如比获取光标位置,选中了哪些内容
resizeBy(w, h)-必须 open() 打开的标签页
resizeTo(w, h)-必须 open() 打开的标签页
moveBy(x, y)-必须 open() 打开的标签页
moveTo(x, y)-必须 open() 打开的标签页

scroll()、scrollBy()、scrollTo() 区别

这三个方法的语法一样,参数都是两种:

  • scroll(x, y) 以左上角 0 0 原点,向右距离为 x,向下为 y
  • scroll({ left: x, top: y, behavior: 'auto' }) behavior 表示滚动行为,三种情况:smooth(平滑滚动), instant(瞬间滚动),默认值 auto

区别:

  • scroll()scrollTo() 方法效果一样,以文档左上角为原点
  • scrollBy() 以当前左上角为原点进行滚动,也就是当前位置进行累加