什么是BOM和DOM
- BOM =>
browser object model
- DOM =>
document object model
- 你可以这样理解
- BOM就是
浏览器, DOM就是浏览器里的网页
为什么声明变量时, 不加var就是隐式的全局变量?
- 浏览器里面,
window对象(注意,w为小写)指当前的浏览器窗口。
- 它也是当前页面的顶层对象,即最高一层的对象,所有其他对象都是它的下属。
- 一个变量如果未声明,那么默认就是顶层对象的属性。
- 所以会出现如下的情况
a = 1;
window.a
a是一个没有声明就直接赋值的变量,它自动成为顶层对象的属性
window对象
- 最顶层的对象, 所有的其他对象, 都是它的属性
- 因为是顶层对象, 也可以不写
document和window.document是一回事儿
document.getElementById()和window.document.getElementById()是一样的
- 你可以这样理解:
浏览器里面有网页, 所以 BOM.document就是DOM
- 还有我们熟悉的
alert(), 实际上是window.alert()
常见对象和属性
window.history
window.history属性指向 History 对象,它表示当前窗口的浏览历史
window.history.length
history.back()
history.go(-1)
history.go(0);
history.forward();
history.go(1);
window.location
- Location对象是浏览器提供的原生对象,提供 URL 相关的信息和操作方法。
- 通过window.location和document.location属性,可以拿到这个对象。
Location.href:整个 URL。
Location.protocol:当前 URL 的协议,包括冒号(:)。
Location.host:主机,包括冒号(:)和端口(默认的80端口和443端口会省略)。
Location.hostname:主机名,不包括端口。
Location.port:端口号。
Location.pathname:URL 的路径部分,从根路径/开始。
Location.search:查询字符串部分,从问号?开始。
Location.hash:片段字符串部分,从#开始。
Location.username:域名前面的用户名。
Location.password:域名前面的密码。
Location.origin:URL 的协议、主机名和端口。
// 当前网址为
// http://user:passwd@www.example.com:4097/path/a.html?x=111#part1
document.location.href
// "http://user:passwd@www.example.com:4097/path/a.html?x=111#part1"
document.location.protocol
// "http:"
document.location.host
// "www.example.com:4097"
document.location.hostname
// "www.example.com"
document.location.port
// "4097"
document.location.pathname
// "/path/a.html"
document.location.search
// "?x=111"
document.location.hash
// "#part1"
document.location.username
// "user"
document.location.password
// "passwd"
document.location.origin
// "http://user:passwd@www.example.com:4097"
- 如果对Location.href写入新的 URL 地址,浏览器会立刻跳转到这个新地址。
document.location.href = 'http://www.example.com';
- 直接改写location,相当于写入href属性。
document.location = 'http://www.example.com';
document.location.href = 'http://www.example.com';
- reload方法使得浏览器重新加载当前网址,相当于按下浏览器的刷新按钮。
window.location.reload(true);
专栏地图
- [做特效, 学JS] -- 00 开篇
- [做特效, 学JS] -- 01 超链接鼠标移入变大变红, 鼠标移除还原
- [做特效, 学JS] -- 02 鼠标移入, div变大变红, 鼠标移出, 回复原貌
- [做特效, 学JS] -- 03 网页换肤
- [做特效, 学JS] -- 04 复选框全选
- [做特效, 学JS] -- 05 复选框全选/全不选
- [做特效, 学JS] -- 06 复选框全选/全不选/反选
- [做特效, 学JS] -- 07 网页选项卡
- [做特效, 学JS] -- 08 倒计时
- [做特效, 学JS] -- 09 正经的 全选和反选
- [做特效, 学JS] -- 10 自动生成表格
- [做特效, 学JS] -- 11 加餐-神奇的正则表达式
- [做特效, 学JS] -- 12 加餐-DOM扩展
- [做特效, 学JS] -- 13 加餐-聊聊BOM