Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

JS 教程

JS 主页 JS 简介 JS 应用场景 JS 输出 JS 语句 JS 语法 JS 注释 JS 变量 JS Let JS Const JS 运算符 JS 算术运算 JS 赋值 JS 数据类型 JS 函数 JS 对象 JS 对象属性 JS 对象方法 JS 对象显示 JS 对象构造函数 JS 事件 JS 字符串 JS 字符串方法 JS 字符串搜索 JS 字符串模板 JS 数字 JS BigInt JS 数字方法 JS 数字属性 JS 数组 JS 数组方法 JS 数组搜索 JS 数组排序 JS 数组迭代 JS 数组常量 JS 日期 JS 日期格式 JS 日期获取方法 JS 日期设置方法 JS 数学 JS 随机数 JS 布尔值 JS 比较运算 JS if-else JS switch JS for 循环 JS for...in 循环 JS for...of 循环 JS while 循环 JS break JS 可迭代对象 JS 集合 JS 集合方法 JS 映射 JS 映射方法 JS typeof JS 类型转换 JS 解构赋值 JS 位运算 JS 正则表达式 JS 运算符优先级 JS 错误 JS 作用域 JS 提升 JS 严格模式 JS this 关键字 JS 箭头函数 JS 类 JS 模块 JS JSON JS 调试 JS 样式指南 JS 最佳实践 JS 错误 JS 性能 JS 保留字

JS 版本

JS 版本 JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS 2019 JS 2020 JS 2021 JS 2022 JS 2023 JS 2024 JS IE / Edge JS 历史

JS 对象

对象定义 对象原型 对象方法 对象属性 对象获取/设置 对象保护

JS 函数

函数定义 函数参数 函数调用 函数 call 函数 apply 函数 bind 函数闭包

JS 类

类简介 类继承 类静态

JS 异步

JS 回调函数 JS 异步 JS Promise JS Async/Await

JS HTML DOM

DOM 简介 DOM 方法 DOM 文档 DOM 元素 DOM HTML DOM 表单 DOM CSS DOM 动画 DOM 事件 DOM 事件监听器 DOM 导航 DOM 节点 DOM 集合 DOM 节点列表

JS 浏览器 BOM

JS 窗口 JS 屏幕 JS 位置 JS 历史记录 JS 导航器 JS 弹出警报 JS 定时器 JS Cookies

JS Web API

Web API 简介 Web 表单 API Web 历史记录 API Web 存储 API Web Worker API Web Fetch API Web Geolocation API

JS AJAX

AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用 AJAX 示例

JS JSON

JSON 简介 JSON 语法 JSON vs XML JSON 数据类型 JSON 解析 JSON 字符串化 JSON 对象 JSON 数组 JSON 服务器 JSON PHP JSON HTML JSON JSONP

JS vs jQuery

jQuery 选择器 jQuery HTML jQuery CSS jQuery DOM

JS 图形

JS 图形 JS Canvas JS Plotly JS Chart.js JS Google 图表 JS D3.js

JS 示例

JS 示例 JS HTML DOM JS HTML 输入 JS HTML 对象 JS HTML 事件 JS 浏览器 JS 编辑器 JS 练习 JS 测验 JS 网站 JS 面试准备 JS 集训营 JS 证书

JS 参考

JavaScript 对象 HTML DOM 对象


ECMAScript 2019

JavaScript 版本号

旧的 ECMAScript 版本使用数字命名:ES5 和 ES6。

从 2016 年起,版本使用年份命名:ES2016、2018、2020 ...

ES2019 中的新特性


JavaScript 字符串 trimStart()

ES2019 在 JavaScript 中添加了 String 方法 trimStart()

trimStart() 方法类似于 trim(),但只从字符串开头删除空白符。

示例

let text1 = "     Hello World!     ";
let text2 = text1.trimStart();
亲自试一试 »

JavaScript 字符串 trimStart() 从 2020 年 1 月起在所有现代浏览器中都受支持

Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
2018 年 4 月 2020 年 1 月 2018 年 6 月 2018 年 9 月 2018 年 5 月

JavaScript 字符串 trimEnd()

ES2019 在 JavaScript 中添加了 String 方法 trimEnd()

trimEnd() 方法类似于 trim(),但只从字符串结尾删除空白符。

示例

let text1 = "     Hello World!     ";
let text2 = text1.trimEnd();
亲自试一试 »

JavaScript 字符串 trimEnd() 从 2020 年 1 月起在所有现代浏览器中都受支持

Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
2018 年 4 月 2020 年 1 月 2018 年 6 月 2018 年 9 月 2018 年 5 月

JavaScript 对象 fromEntries()

ES2019 在 JavaScript 中添加了 Object 方法 fromEntries()

fromEntries() 方法从可迭代的键值对创建对象。

示例

const fruits = [
["apples", 300],
["pears", 900],
["bananas", 500]
];

const myObj = Object.fromEntries(fruits);
亲自试一试 »

JavaScript 对象 fromEntries() 从 2020 年 1 月起在所有现代浏览器中都受支持

Chrome 73 Edge 79 Firefox 63 Safari 12.1 Opera 60
2019 年 3 月 2020 年 1 月 2018 年 10 月 2019 年 3 月 2019 年 4 月


可选捕获绑定

从 ES2019 开始,如果不需要,可以省略 catch 参数:.

示例

2019 年之前

try {
// 代码
} catch (err) {
// 代码
}

2019 年之后

try {
// 代码
} catch {
// 代码
}

可选捕获绑定自 2020 年 1 月起在所有现代浏览器中均受支持

Chrome 66 Edge 79 Firefox 58 Safari 11.1 Opera 53
2018 年 4 月 2020 年 1 月 2018 年 1 月 2018 年 3 月 2018 年 5 月

JavaScript 数组 flat()

ES2019 将 Array flat() 方法添加到 JavaScript 中。

flat() 方法通过展平嵌套数组创建一个新数组。

示例

const myArr = [[1,2],[3,4],[5,6]];
const newArr = myArr.flat();
亲自试一试 »

JavaScript 数组 flat() 自 2020 年 1 月起在所有现代浏览器中均受支持

Chrome 69 Edge 79 Firefox 62 Safari 12 Opera 56
2018 年 9 月 2020 年 1 月 2018 年 9 月 2018 年 9 月 2018 年 9 月

JavaScript 数组 flatMap()

ES2019 将 Array flatMap() 方法添加到 JavaScript 中。

flatMap() 方法首先映射数组的所有元素,然后通过展平数组创建一个新数组。

示例

const myArr = [1, 2, 3, 4, 5, 6];
const newArr = myArr.flatMap(x => [x, x * 10]);
亲自试一试 »

稳定数组 sort()

ES2019 **修改** 了 Array sort() 方法。

2019 年之前,规范允许不稳定排序算法,如 QuickSort。

ES2019 之后,浏览器必须使用稳定排序算法

对值进行排序元素时,元素必须保持其相对于具有相同值的其它元素的相对位置。

示例

const myArr = [
  {name:"X00",price:100 },
  {name:"X01",price:100 },
  {name:"X02",price:100 },
  {name:"X03",price:100 },
  {name:"X04",price:110 },
  {name:"X05",price:110 },
  {name:"X06",price:110 },
  {name:"X07",price:110 }
];
亲自试一试 »

在上面的例子中,当按价格排序时,结果不应具有名称的不同相对位置,例如:

X01 100
X03 100
X00 100
X03 100
X05 110
X04 110
X06 110
X07 110

修改后的 JSON.stringify()

ES2019 **修改** 了 JSON stringify() 方法。

2019 年之前,JSON 无法将用 \ 编码的字符进行字符串化。

示例

let text = JSON.stringify("\u26D4");
亲自试一试 »

ES2019 之前,对 UTF-8 代码点 (U+D800 到 U+DFFF) 使用 JSON.stringify()JSON 会返回损坏的 Unicode 字符,如 ���。

这次修改之后,带有 UTF-8 代码点的字符串可以使用 JSON.stringify() 安全地转换,并使用 JSON.parse() 转换回原始值。


分隔符

现在,字符串文字中允许使用换行符和段落分隔符符号(\u2028 和 \u2029)。

2019 年之前,这些被视为行终止符,会导致错误异常

示例

// 这在 ES2019 中是有效的
let text = "\u2028";
亲自试一试 »

注意

现在,JavaScript 和 JSON 具有相同的规则。

ES2019 年之前

text = JSON.parse('"\u2028"') 将解析为 ''。

text = '"\u2028"' 会导致 **语法错误**。


修改后的 Function toString()

ES2019 **修改** 了 Function toString() 方法。

toString() 方法返回一个表示函数源代码的字符串。

从 2019 年开始,toString() 必须返回函数的源代码,包括注释、空格和语法细节。

2019 年之前,不同的浏览器返回函数的不同变体(例如,没有注释和空格)。从 2019 年开始,函数应按原样返回。

示例

function myFunction(p1, p2) {
  return p1 * p2;
}
亲自试一试 »

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.