BOM的核心是window对象 ,关于窗口的一些属性必须牢记

全局作用域

由于 window 对象同时扮演着 ECMAScript 中 Global 对象的角色,因此所有在全局作用域中声明
的变量、函数都会变成 window 对象的属性和方法:

  1. var age = 29;
  2. function sayAge(){
  3. alert(this.age);
  4. }
  5. alert(window.age); //29
  6. sayAge(); //29
  7. window.sayAge(); //29

窗口位置

用来确定和修改 window 对象位置的属性和方,下列代码可以跨浏览器取得窗口左边和上边的位置:

  1. var leftPos = (typeof window.screenLeft == "number") ? window.screenLeft : window.screenX;
  2. var topPos = (typeof window.screenTop == "number") ? window.screenTop : window.screenY;

窗口大小

为了确定窗口大小,有4个属性去支持:

  • innerWidth
  • innerHeight
  • outerWidth
  • outerHeight

注意:

1、outerWidth 和 outerHeight 返回浏览器窗口本身的尺寸(无论是从最外层的 window 对象还是从
某个框架访问)
2、innerWidth 和 innerHeight则表示该容器中页面视图区的大小(减去边框宽度)。

导航和打开窗口

使用 window.open()方法既可以导航到一个特定的 URL,也可以打开一个新的浏览器窗口。这个
方法可以接收 4 个参数:

  • 要加载的 URL
  • 窗口目标
  • 一个特性字符串
  • 一个表示新页面是否取代浏览器历史记录中当前加载页面的布尔值

间歇调用和超时调用

JavaScript 是单线程语言,但它允许通过设置超时值和间歇时间值来调度代码在特定的时刻执行。
前者是在指定的时间过后执行代码,而后者则是每隔指定的时间就执行一次代码:

  1. //设置超时调用
  2. var timeoutId = setTimeout(function() {
  3. alert("Hello world!");
  4. }, 1000);
  5. clearTimeout(timeoutId);//注意:把它取消

系统对话框

主要有以下三种,可以借助控制台去预览效果:

  • alert()

调用alert()方法的结果就是向用户显示一个系统对话框,其中包含指定的文本和一个 OK(“确定”)按钮

  • confirm()

confirm()方法生成的。从向用户显示消息的方面来看,这种“确认”对话框很像是一个“警告”对话框。但二者的主要区别在于“确认”对话框除了显示 OK 按钮外,还会显示一个 Cancel(“取消”)按钮,两个按钮可以让用户决定是否执行给定的操作

  • prompt()

通过调用 prompt()方法生成的,这是一个“提示”框,用于提示用户输入一些文本