# BOM 对象

# window 对象

  • 浏览器窗口

# location 对象

是 window 对象也是 document 对象。其中 search 不实用,需要改造函数来实现

可以去往这个对象增加新属性,但无法对原来的属性值作出随意变更赋值

属性 方法 描述
ancestorOrigins
hash
hostname www.baidu.com
href https://www.baidu.com/#dsad?dsd=dsd
origin https://www.baidu.com
pathname /
protocol https
search
assign(url) 生成一个location并跳转
reload()
replace() 传递true,则强制刷新
toString()

可以去往这个对象增加新属性,但无法对原来的属性值作出随意变更赋值。可以使用 Object.defineProperty(navigator,'userAgent',{value:'foo'}) 来修改

  • chrome 和 firefox 参数都有自己的,相同的属性或者同属性的值挺少的。

  • TODO 制作 node 去判断用户代理字段的特征值

  • 红宝石书中有一段检查浏览器、厂商、平台、操作系统的完全代码

# Screen 对象

用处不大,表明客户端的能力,DPI 之类 屏幕像素宽高等

# History 对象

无法得知浏览过的 url,但可以通过实现前进和后退

  • go(-)
属性 方法 描述
go(1) 整数 整数,前进,负数,后退
back() 等同于 go(负数)
forward() 等同于 go(正数)
length 整数,0 就是第一个目标页面 表示历史记录有几条

# 存储对象 sessionStorage 回话存储 localStorage 本地存储

属性 方法 描述 实例
length
key(n)
getItem(keyName)
setItem(keyName,value)
removeItem(keyName)
clear()
差异 Cookie Session LocalStorage
存储 5K 5M 5M
生命周期 浏览器访问期间 浏览器访问期间 永久有效