js中的window对象详解

简介:js中的window对象详解

初学JavaScript的时候,总是会有一个疑问,为什么JS这门语言既感觉很简单,有感觉很繁琐,简单是因为它的宽松的风格,不像其他强类型语言那么严格,繁琐的是JS这门语言,又是什么ES6,又是什么DOM、BOM的。不像Python之类的语言就是Python。那么JS到底是什么,它又是由哪几部分构成的呢?

JavaScript 是一种具有函数优先的轻量级,解释型的编程语言,是一种弱类型的编程语言,由于它是作为开发Web页面的脚本语言,所以JS这门语言跟浏览器(BOM)和网页(DOM)有着密不可分的关系,所以它的组成部分也离不开宿主环境浏览器和操作对象网页了。

JavaScript由以下三个部分组成:

1、ECMAScript

ECMA是欧洲计算机制造商协会英文缩写。ECMAScript规定了JS的核心语法,如语法, 数据类型,关键字,保留字,运算符,对象等,它相当于JavaScript的"骨架",定义了JS这门语言的"基本样子",只有有了这个骨架,才能对它进行拓展,ECMAScript的版本也会一直更新,每一次的更新也是更加的完善JavaScript。

2、文档对象模型(DOM)

DOM是“Document Object Model”的缩写,简称文档对象模型,由W3C指定规范。DOM定义了JavaSCript操作 HTML 文档的接口,提供了访问 HTML文档(body、div、p等)的途径和操作方法。当浏览器载入 HTML 文档后,将整个文档规划成由节点构成的节点树,文档中的每个部分都是一个节点。

主要包含内容:DOM树(DOM规定HTML文档中的每一个元素都是一种节点)、查找文档、节点操作、css属性操作、事件event等等

3、浏览器对象模型(BOM)

BOM是“Browser Object Model”的缩写,简称浏览器对象模型。BOM定义了JavaScript操作浏览器的接口,提供了访问某些功能(如浏览器窗口大小,版本信息,浏览历史记录等)的途径和操作方法。

BOM 只是 ECMAScript 的一个扩展,它并没有任何相关标准,W3C也没有对该部分作出规范,不同的浏览器有自己的BOM实现,所以东西也是很繁杂的。

我们已经大致的了解了一下JS的基本组成,内容有点多,但是我们今天只聊一聊BOM中的window对象,后期会不断更新其他对象信息

BOM中的window对象:

Window 对象是浏览器的窗口对象。在浏览器中,Window 对象是JavaScript的全局对象,所有的表达式都在当前的环境中计算。

上图是我在网上找的一种window对象结构图:

  • Window 对象:浏览器窗口对象
  • Location 对象:浏览器URL地址对象
  • Screen 对象:屏幕对象
  • Navigator 对象:浏览器对象
  • History 对象:浏览记录对象
  • Document 对象:文档对象

由于 Document 对象中包含的内容太多,因此,W3C 组织将 Document 对象单独提出来,形成了一套独立的规范,命名为 DOM。

Window对象有很多自带的属性,常用的属性如下:

属性名 说明
innerHeight/innerWidth 视口(文档显示区)宽高
outerHeight/outerWidth 浏览器窗口宽高
screenLeft/screenTop 浏览器左上角到屏幕左上角的距离

window对象常用方法:

属性名 说明
open() 打开一个新窗口,参数是一个url
alert() 弹出提示框,参数是弹窗内容
prompt() 弹出用户输入框,参数为提示用户输入的内存
close() 关闭一个窗口

下面我们再来看看这些常用属性及方法的使用:

console.log('文档显示区的高', window.innerHeight);
console.log('文档显示区的宽', window.innerWidth);

console.log('浏览器窗口高', window.outerHeight);
console.log('浏览器窗口宽', window.outerWidth);

console.log('浏览器左上角到屏幕左边的距离', window.screenLeft);
console.log('浏览器左上角到屏幕顶部的距离', window.screenTop);

// 打开一个新窗口
window.open('https://www.woniuxy.com')

//弹窗提示
window.alert('提示语')

//弹出用户输入框
window.prompt('请输入你的姓名')

//关闭一个窗口
window.close()

Window对象调用属性和方法是可以省去前面的window.,也就是说,要引用当前窗口根本不需要特殊的语法,可以把那个窗口的属性作为全局变量来使用。例如,可以只写 document,而不必写 window.document。同样,可以把当前窗口对象的方法当作函数来使用,如只写 alert(),而不必写 window.alert()

除了上面列出的属性和方法,Window 对象还实现了核心 JavaScript 所定义的所有全局属性和方法。

有遗漏或者不对的可以在我的公众号留言哦

编程经验共享公众号二维码

编程经验共享公众号二维码
更多内容关注公众号
Copyright © 2021 编程经验共享 赣ICP备2021010401号-1