• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
社会优先于个人
博客园    首页    新随笔    联系   管理    订阅  订阅
1.2 js实现

完整的js

  • 核心 ECMAScript
  • 文档对象模型 DOM
  • 浏览器对象模型 BOM

image

ECMAScript

  • 不局限于浏览器,浏览器只是一个宿主环境
  • 宿主环境提供ECMAScript的基准实现和与环境交互的扩展
  • 其他宿主环境,比如nodejs,flash

不涉及浏览器,ECMAScript定义了什么?

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 操作符
  • 全局对象

ECMAScript版本

  • 第一版:本质和JS 1.1相同。删除了浏览器特定的代码。支持unicode标准。对象要和平台无关。
  • 第二版:没有增减和改变任何特性,只做了编校工作。
  • 第三版:更新了字符串处理,错误定义和数值输出。开始支持正则表达式,新的控制语句,try/catch异常处理。
  • 第四版:真正的第四版,由于跳跃太大被放弃了。
  • 第五版:2009年发布,增加了新功能,解析和序列化json对象,方便继承和高级属性定义的方法,引擎执行代码的严格模式。
  • 第六版:2015年发布,开始支持,类,模块,迭代器,生成器,箭头函数,期约,反射,代理,和众多新的数据类型
  • 第七版: 2016年发布,新增Array.prototype.includes和指数操作符
  • 第八版:2017年发布,新增,async/await,getOwnPropertyDescriptors
  • 第九版:2018年发布,修订异步迭代,promise finally,模版字面量
  • 第十版:2019年发布,新增,Array.prototype.flat/flatMap, String.prototype.trimStart/trimEnd 等

ECMAScript符合性

  • ECMAScript符合性:要成为ECMAScript实现,必须满足以下条件
  • 支持所有的“类型,值,对象,属性,函数,以及程序语法和语义”
  • 支持unicode 字符标准

ECMAScipt的支持

image
image

DOM

  • 文档对象模型,document object model
  • 是一个应用编程接口,使用dom api 操纵节点
  • dom将整个页面抽象成一组分层节点
  • 并非只能通过js来访问。对于浏览器来说,就是js来访问的。

DOM级别:DOM level1

  • 1998年,DOM level1 成为W3C的推荐标准。有两个组成模块:DOM core和DOM HTML
  • DOM core 提供了移动映射XML文档,从而方便访问和操作文档任意部分的方式
  • DOM HTML 增加了特定于HTML的对象和方法

DOM级别:DOM level2

  • 新增了以下模块,支持新的接口
  • DOM视图:描述追踪文档不同视图的接口
  • DOM事件:描述事件和事件处理的接口。
  • DOM样式:描述处理元素CSS样式的接口。
  • DOM遍历和范围:描述遍历和操作DOM树的接口。

DOM级别:DOM level3

  • 增加了以统一的方式加载和保存文档的方式,验证文档的方式
  • 目前W3C不再按照level来维护dom了,而是按照dom living standard来维护。成为dom4。

其他dom

  • 其他语言也发布了自己的dom标准。
  • 都是基于XML的,每一种都增加了该语言独特的dom方法和接口
  • 可伸缩矢量图(SVG)
  • 数学标记语言
  • 同步多媒体集成语言

web浏览器对dom的支持

image

BOM

  • 浏览器对象模型
  • bom api 用来访问和操纵浏览器的窗口,可以操纵浏览器显示页面之外的部分
  • html5 正式规范了很多bom特性
  • bom主要是针对浏览器窗口和子窗口,但人们通常会把任何特定于浏览器的拓展归纳在bom范畴,比如:
  • 弹出新浏览器窗口的能力
  • 移动,缩放和关闭浏览器窗口的能力
  • navigator对象,提供关于浏览器的信息
  • location对象,提供浏览器加载页面的信息
  • screen对象,提供用户分辨率的信息
  • performance对象,提供浏览器内存占用,导航行为,时间统计的信息
  • 支持cookie
posted on 2022-04-23 14:09  社会优先于个人  阅读(36)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3