旧的 JS 版本以数字命名:ES5 (2009) 和 ES6 (2015)。
从 2016 年开始,版本按年份命名:ECMAScript 2016、2017、2018、2019,...
这些功能相对较新。
较旧的浏览器可能需要替代代码(Polyfill)
ES2019添加了String方法trimStart()
到 JavaScript。
这个trimStart()
方法的工作原理就像trim()
,但仅删除字符串开头的空格。
JavaScript 字符串trimStart()
自 2020 年 1 月起所有现代浏览器均支持:
Chrome 66 | Edge 79 | Firefox 61 | Safari 12 | Opera 50 |
Apr 2018 | Jan 2020 | Jun 2018 | Sep 2018 | May 2018 |
ES2019添加了String方法trimEnd()
到 JavaScript。
这个trimEnd()
方法的工作原理就像trim()
,但仅删除字符串末尾的空格。
JavaScript 字符串trimEnd()
自 2020 年 1 月起所有现代浏览器均支持:
Chrome 66 | Edge 79 | Firefox 61 | Safari 12 | Opera 50 |
Apr 2018 | Jan 2020 | Jun 2018 | Sep 2018 | May 2018 |
ES2019添加了Object方法fromEntries()
到 JavaScript。
这个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 |
Mar 2019 | Jan 2020 | Oct 2018 | Mar 2019 | Apr 2019 |
从 ES2019 开始,如果不需要,可以省略 catch 参数:。
2019 年之前:
try {
// code
} catch (err) {
// code
}
2019年后:
try {
// code
} catch {
// code
}
自 2020 年 1 月起,所有现代浏览器都支持可选的 catch 绑定:
Chrome 66 | Edge 79 | Firefox 58 | Safari 11.1 | Opera 53 |
Apr 2018 | Jan 2020 | Jan 2018 | Mar 2018 | May 2018 |
ES2019添加了数组flat()
JavaScript 方法。
这个flat()
方法通过展平嵌套数组来创建一个新数组。
JavaScript 数组flat()
自 2020 年 1 月起所有现代浏览器均支持:
Chrome 69 | Edge 79 | Firefox 62 | Safari 12 | Opera 56 |
Sep 2018 | Jan 2020 | Sep 2018 | Sep 2018 | Sep 2018 |
ES2019添加了数组flatMap()
JavaScript 方法。
这个flatMap()
方法首先映射数组的所有元素,然后通过展平数组来创建一个新数组。
ES2019修改阵列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
ES2019修改JSONstringify()
方法。
2019 年之前,JSON 无法对使用 \ 编码的字符进行字符串化。
ES2019之前,使用JSON.stringify()
UTF-8 代码点(U+D800 到 U+DFFF)上的 JSON 返回损坏的 Unicode 字符,例如 ���。
在此修订之后,具有 UTF-8 代码点的字符串可以安全地转换为JSON.stringify()
,然后回到原来的使用JSON.parse()
。
现在,字符串文字中允许使用行分隔符和段落分隔符符号(\u2028 和 \u2029)。
在 2019 年之前,这些被视为行终止符并导致错误异常:
现在,JavaScript 和 JSON 具有相同的规则。
ES2019 之前:
text = JSON.parse('"\u2028"') 将解析为 ''。
text = '"\u2028"' 会给出语法错误。
ES2019修改函数toString()
方法。
这个toString()
方法返回一个表示函数源代码的字符串。
从 2019 年开始,toString() 必须返回函数的源代码,包括注释、空格和语法详细信息。
在 2019 年之前,不同的浏览器返回该函数的不同变体(例如没有注释和空格)。从 2019 年开始,该函数应完全按照编写的方式返回。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!