一个人完整的JavaScript实现应该由下列三个不同的部分组成。

1.核心(ECMAScript);

由ECMA-262定义,提供核心语言功能;  ECMAScript与Web没有依赖关系。 我们常见的Web浏览器只是ECMAScript实现可能的宿主环境之一。宿主环境不仅提供基本的ECMAScript实现的,同时也会提供该语言的扩展,以便语言与环境之间对接交互。

它规定了这们语言的下了组成让部分: 语言,类型,语句,关键字,保留字,操作符,对象。 ECMAScript就是对实现标准规定的各个方面内容的语言的描述。

2.文档对象类型(DOM);

提供访问和操作浏览器页面内容的方法和接口; (Document Object Model) 是针对XML但经过扩展用于HTML的应用编程接口(API  Application Programming Interface) DOM把整个页面映射为一个多层节点结构。HTML 或者XML 页面中每个组成部分都是某种类型的节点。 这些节点节点又包含着不同类型的数据。

通过DOM创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主权。借助DOM提供的API,开发人员可以轻松的删除,添加。替换,或者修改任何节点。

3.浏览器对象模型(BOM);

提供与浏览器交互的方法和接口; (Browser Object Model) 开发人员使用BOM可以控制浏览器显示的页面以外的部分。BOM只处理浏览器窗口和框架。但人们先习惯性上也把所有针对浏览器的JavaScript扩展算作BOM的一部分。 下面就是这样的扩展:

  • 弹出新的浏览器窗口的功能。
  • 移动 缩放 关闭浏览器窗口的功能。
  • 提供浏览器详细信息的navigator对象。
  • 提供浏览器所加载页面的详情信息的location 对象。
  • 提供用户显示器分辨率详细信息的screen 对象。
  • 对cookies的支持。
  • 像XMLHttpRequest 和IE 的ActiveXObject 这样自定义对象。

由于没有BOM标准可以遵循,因此每个浏览器都有自己的实现。

JavaScript实现相关推荐

  1. 【AJAX】JavaScript的面向对象

    Ajax中后端数据返回后需要前端通过JavaScript来实现动态数据更新的问题.所以,在Ajax中加深了一遍JavaScript面向对象的印象. 基础部分: JavaScript中创建对象并简单对象 ...

  2. 【JavaScript总结】JavaScript语法基础:JS高级语法

    作用域链: 1.JS中只有函数能够限定作用域的范围: 2.变量处理在制定的函数范围内,还有一个特殊的作用域,就是没有用var 声明的全局作用域 3.js中的作用域链是为了清晰的表示出所有变量的作用范围 ...

  3. 【JavaScript总结】JavaScript语法基础:DOM

    ->DOM的理解:文档对应dom树 ->有了DOM能做什么:DOM的操作 html文档做为DOM树模型,DOM树的节点就是对象.对象会触发事件来执行一些事件代码. C#中的事件是一个委托变 ...

  4. 【JavaScript总结】JavaScript语法基础:JS编码

    运算符 数学:+. -. *. / 逻辑:>. < .>= .<=. == . !=.&&.|| . === .!==(完全等于) 对象相关 new delet ...

  5. 【JavaScript总结】JavaScript语法基础:数据类型

    ------>数据类型有哪些? ->基本类型:数字类型,布尔类型,字符串类型 ->引用类型:对象类型,函数类型 ->空类型:null 和 undefined ->运算符: ...

  6. 【JavaScript总结】JavaScript发展与学习内容

    发展: 最初浏览器是为大学里浏览文档用,从地址栏输入文档地址,找到文档显示. 后来各种需求(购物网站,个人博客)出现,已有功能不能满足需求. 可人们依旧在努力满足这种需求,但实现后的效果很不尽人意. ...

  7. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

  8. [JavaScript] JavaScript数组挖掘,不只是讲数组哟(2)

    课程来源:后盾人 上一篇的内容:[JavaScript] JavaScript数组挖掘,不只是讲数组哟 数组引用类型分析,多维数组,用Array.of为数组创建细节,类型检测与转换,在一个数组后面加一 ...

  9. [JavaScript] JavaScript 数组挖掘,不只是讲数组哟

    课程来源:后盾人 数组引用类型分析 数组的定义 const array = new Array('hello', 'dust', 1, 2, 3, 4, 5) console.log(array) l ...

  10. linux下用js生成xml,js2xml:将javascript字符串转换为xml

    有时候爬数据遇到像下面这种,数据在script标签中以javascript形式存在. var totalReviewsValue = 32; var averageRating = 4.5; if(t ...

最新文章

  1. python xmxl 无法启动_Python小白到老司机,快跟我上车!基础篇(三)
  2. 【Linux】一步一步学Linux——logname命令(109)
  3. 高等数学上-赵立军-北京大学出版社-题解-练习5.4
  4. OC Swift中UITextFiled、UITextView限制输入字数
  5. pgsql 前10条_未来3年,广州83条城中村、285个旧街区将迎来改造
  6. thinkphp中的session的使用和理解!
  7. 0基础学python要多久-零基础学习python,要多久才可以学好并且找到工作?
  8. QQ文件保险柜与Truecrypt之对比.
  9. 信度spss怎么做_毕业季:毕业论文利用spss做信度分析步骤详解
  10. 循环结构--while循环
  11. linux系统支持网银吗,Linux系统能使用网银吗?
  12. HDU5855(最大权闭合图构图技巧+裸的最大流)
  13. 可能是讲分布式系统最到位的一篇文章
  14. 2017年总结:人生百味,有你真好
  15. X-Space二级(三级)域名配置
  16. 数据库安全性案例分享
  17. java 字符串掐头去尾_Java 8 Stream 简单介绍
  18. mysql为什么用B+树
  19. 碰撞检测——刚体加力
  20. hdu 4417 Super Mario

热门文章

  1. android Intent调用地图应用客户端
  2. NiuMu PayPal/Stripe轮询系统 亲友转账模式同步回调支付结果
  3. Node.js meitulu图片批量下载爬虫1.04版
  4. 七周成为数据分析师(秦路)-第一周-数据分析思维
  5. 2020年G3锅炉水处理证模拟考试题库及G3锅炉水处理理论考试试题
  6. 电容或电感的电压_为什么并联电容器可以提高功率因数,而串联不行?
  7. win10+Ubuntu20.04双系统安装
  8. 卧槽,物色了一款隐秘拍摄神器,别乱用!
  9. 带你实战Android深色模式,深入原理剖析
  10. QGIS3.20 制作栅格动画