Skip to content

W3C与ES规范

约 1323 字大约 4 分钟

代码规范面试

2025-05-18

一.W3C 规范 (World Wide Web Consortium)

1.1 什么是 W3C?

​ W3C 全称 World Wide Web Consortium (万维网联盟),是一个国际性的、致力于制定 Web 标准的组织。它的使命是确保 Web 的长期发展和互操作性。W3C 发布的规范被称为“推荐标准 (Recommendations)”,被广泛采纳和实现。

1.2 W3C 规范关注什么?

​ W3C 规范主要关注 Web 平台本身 的各个方面,包括内容的结构、表现、交互方式、设备访问以及可访问性。它定义了 Web 内容应该如何被创建、传输、解析、呈现和用户如何与之交互。简单来说,W3C 定义了 Web 页面的“是什么”“长什么样”,以及它提供了哪些与用户或外部环境交互的 “接口”

  • 结构 (Structure):
    • HTML (HyperText Markup Language): 定义网页内容的结构和语义,如 <div>, <p>, <a>, <img> 等标签。
    • XML (eXtensible Markup Language): 一种用于描述数据的标记语言,是许多其他 Web 技术的基础。
  • 样式与表现 (Style & Presentation):
    • CSS (Cascading Style Sheets): 定义网页内容的视觉样式和布局,如颜色、字体、边距、定位等。
  • 文档对象模型 (Document Object Model - DOM):
    • DOM: 定义了 HTML 和 XML 文档的逻辑结构,以及如何通过编程语言(如 JavaScript)来访问和操作这些文档的元素、属性和内容。DOM 并不是一种编程语言,而是一个 API。
  • Web API (Application Programming Interfaces):
    • XMLHttpRequest (XHR): 允许网页在不刷新页面的情况下发送 HTTP 请求(AJAX 的基础)。
    • Geolocation API: 获取用户地理位置信息。
    • Web Storage API: 允许 Web 应用程序在客户端存储数据(localStorage, sessionStorage)。
    • Web Components: 定义了创建可复用自定义元素的技术集(Custom Elements, Shadow DOM, HTML Templates, ES Modules)。
  • 可访问性 (Accessibility):
    • WCAG (Web Content Accessibility Guidelines): 确保残障人士也能访问和使用 Web 内容的指南。
  • 图形与媒体 (Graphics & Media):
    • SVG (Scalable Vector Graphics): 定义基于 XML 的二维矢量图形。
    • WebM, HTML5 Video/Audio: 定义 Web 上的多媒体格式和播放。

总结: W3C 规范定义了 Web 页面的“骨架”、“皮肤”和“器官”,以及它们如何与外界交互。

二.ECMAScript (ES) 规范

2.1 什么是 ECMAScript?

ECMAScript (通常简称为 ES) 是由 Ecma International (欧洲计算机制造商协会) 通过其技术委员会 TC39 制定的一种 通用目的脚本语言的标准化规范

2.2 ECMAScript 与 JavaScript 的关系?

  • ECMAScript 是规范,JavaScript 是实现。
  • JavaScript 是 ECMAScript 规范最著名、最广泛的实现。其他实现还包括 JScript (微软) 和 ActionScript (Adobe)。
  • 当人们提到“JavaScript 的新特性”时,通常指的是 ECMAScript 规范中新增的语言特性(如 ES6/ES2015、ES2016 等)。

2.3 ES 规范关注什么?

​ ECMAScript 规范主要关注 脚本语言本身的核心能力。它定义了语言的内部逻辑、数据处理方式以及程序执行流程。它并不直接关心代码运行在什么环境(浏览器、服务器、嵌入式设备),而是提供了一套通用的编程能力。简单来说,ECMAScript 定义了 Web 页面的“大脑”和“神经系统”,即它如何进行计算、处理数据、存储信息和执行逻辑。

主要关注领域及示例:

  • 核心语法 (Core Syntax):

    • 定义了如何声明变量 (var, let, const)。
    • 定义了基本数据类型(Number, String, Boolean, Object, Array, Symbol, BigInt, null, undefined)。
    • 定义了各种操作符(算术 +, -, *, /;比较 ==, ===, <, >;逻辑 &&, ||, ! 等)。
    • 定义了控制流程语句(if/else, for, while, do/while, switch)。
    • 定义了函数如何定义和调用。
  • 内置对象 (Built-in Objects):

    • ECMAScript 规范定义了一系列标准的内置对象,这些对象提供了语言本身自带的功能。

    • 示例:

      • Object, Array, Function: 语言的基础构造块。
      • String, Number, Boolean: 基本类型的包装对象,提供相关方法。
      • Math: 提供数学常量和函数。
      • Date: 处理日期和时间。
      • RegExp: 处理正则表达式。
      • Promise: 处理异步操作的标准方式 (ES6)。
      • Map, Set, WeakMap, WeakSet: 新的数据结构 (ES6)。
      • Symbol: 唯一的、不可变的基本类型值 (ES6)。
      • BigInt: 支持任意精度的整数 (ES2020)。
    • 语言特性 (Language Features):

    • 类 (Classes - 语法糖)

    • 模块 (ES Modules)

    • 箭头函数 (Arrow Functions)

    • 解构赋值 (Destructuring Assignment)

    • 扩展运算符 (Spread/Rest Syntax)

    • 异步编程 (Async/Await)

    • 迭代器 (Iterators) 和 生成器 (Generators)

总结: ES 规范定义了 Web 页面的“大脑”和“神经系统”,即它如何思考、处理数据和执行逻辑。

三. 核心区别

特性W3C 规范ECMAScript (ES) 规范
制定组织World Wide Web Consortium (万维网联盟)Ecma International (欧洲计算机制造商协会) - TC39
关注焦点Web 平台 的结构、表现、API 和可访问性脚本语言 的核心语法、语义和内置对象
定义内容HTML、CSS、DOM、Web API、SVG、WCAG 等变量、函数、对象、数组、Promise、Async/Await 等
应用环境主要用于 浏览器环境 (Web 页面)通用,可在浏览器、Node.js、Deno 等任何 JS 引擎中运行
角色比喻定义了 Web 的“骨架”、“皮肤”和“器官”定义了 Web 的“大脑”和“神经系统”