网站首页 > 技术文章 正文
ECMAScript 是 JavaScript 的核心,但是如果要在 Web 中使用 JavaScript,那么 BOM(browser object model 浏览器对象模型) 才是真正的核心。BOM 提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。
window 对象
BOM 的核心对象是 window,它表示一个浏览器的实例。在浏览器中,window 对象有双重角色,它既是通过 JavaScript 访问浏览器窗口的一个接口,又是 ECMAScript 规定的 Global 对象。这意味着在网页中定义的任何一个对象、变量和函数,都以 window 作为其 Global 对象。
全局作用域
由于 window 对象同时扮演着 ECMAScript 中 Global 对象的角色,因此所有在全局作用域中声明的变量、函数都会变成 window 对象的属性和方法。例:
上面的例子中,在全局作用域中定义了一个变量 age 和 一个函数 sayAge() ,它们会被自动归在了 window 对象上。于是,使用 window.age 和 window.sayAge() 可以访问这个变量和这个函数。
撇开全局变量会成为 window 对象的属性不谈,定义全局变量与在 window 对象上直接定义属性还是有一点区别的:全局变量不能通过 delete 操作符删除,而直接在 window 对象上定义的属性则可以 。 例:
使用 var 语句添加的 window 属性有一个名为 [[Configurable]] 的特性,这个特性的值被设置成 false,因此这样定义的属性是不能通过 delete 操作符删除的。IE9 之前的版本在使用 delete 删除 window 属性语句时,不管该属性最初是如何创建的,都会抛出错误。另外,尝试访问未声明的变量会抛出错误,但是通过查询 window 对象,可以知道某个可能未声明的变量是否存在。例:
猜你喜欢
- 2024-10-23 ECMAScript 6的历史和未来前景展望
- 2024-10-23 JavaScript 引擎基本原理:Shapes 和 Inline Caches
- 2024-10-23 Vue进阶(四十二):var、let、const三者的区别
- 2024-10-23 JavaScript编程基础2(javascript编程工具)
- 2024-10-23 什么是ESLint?(什么是血糖)
- 2024-10-23 前端三剑客:HTML、CSS 和 JavaScript
- 2024-10-23 JavaScript 后端开发者必须跨的 10 道门槛
- 2024-10-23 ECMAScript 2023 新特性解读,附代码示例
- 2024-10-23 前端基础:ECMAScript 6(前端基础笔试题及答案)
- 2024-10-23 小白初识JavaScript的基础知识与相关术语
- 11-26Win7\8\10下一条cmd命令可查得笔记本电脑连接过的Wifi密码
- 11-26一文搞懂MySQL行锁、表锁、间隙锁详解
- 11-26电脑的wifi密码忘记了?一招教你如何找回密码,简单明了,快收藏
- 11-26代码解决忘记密码问题 教你用CMD命令查看所有连接过的WIFI密码
- 11-26CMD命令提示符能干嘛?这些功能你都知道吗?
- 11-26性能测试之慢sql分析
- 11-26论渗透信息收集的重要性
- 11-26如何查看电脑连接过的所有WiFi密码
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)