ECMAScript 2017

JavaScript命名约定从ES1、ES2、ES3、ES5和ES6开始。

但是,ECMAScript 2016和2017并没有被称为ES7和ES8。

自2016年起,新版本按年份命名(ECMAScript 2016/2017/2018)。


ECMAScript 2017的新特性

本章讲介绍ECMAScript 2017的新特性:

  • JavaScript String padding
  • JavaScript Object.entries
  • JavaScript Object.values
  • JavaScript async functions
  • JavaScript shared memory

JavaScript String Padding

ECMAScript 2017添加了两个String方法:padStart和padEnd,以支持在字符串的开头和结尾填充。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>JavaScript String Methods</h2>
  5. <p>padStart()方法用另一个字符串填充一个字符串:</p>
  6. <p id="demo"></p>
  7. <script>
  8. let str = "5";
  9. str = str.padStart(4,0);
  10. document.getElementById("demo").innerHTML = str;
  11. </script>
  12. </body>
  13. </html>
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>JavaScript String Methods</h2>
  5. <p>padEnd() 方法用另一个字符串填充一个字符串:</p>
  6. <p id="demo"></p>
  7. <script>
  8. let str = "5";
  9. str = str.padEnd(4,0);
  10. document.getElementById("demo").innerHTML = str;
  11. </script>
  12. </body>
  13. </html>

Internet Explorer 不支持字符串填充。

Firefox和Safari是第一款支持JavaScript字符串填充的浏览器:

方法
Padding 方法Chrome 57Edge 15Firefox 48Safari 10Opera 44
2017年5月2017年4月2016年8月2016年9月2017年3月

JavaScript Object.entries

ECMAScript 2017将新的方法 entries 添加到对象:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>JavaScript Object Methods</h2>
  5. <p>对象的 entries() 方法的作用是:从一个对象返回一个键/值对数组:</p>
  6. <p id="demo"></p>
  7. <script>
  8. const person = {
  9. firstName : "埃隆",
  10. lastName : "马斯克",
  11. age : 50,
  12. eyeColor : "蓝色"
  13. };
  14. document.getElementById("demo").innerHTML = Object.entries(person);
  15. </script>
  16. </body>
  17. </html>

Firefox和Chrome是第一款支持 JavaScript 对象的 entries 的浏览器:

方法
entries 方法Chrome 47Edge 14Firefox 47Safari 10.1Opera 41
2016年6月2016年8月2016年6月2017年3月2016年10月

JavaScript Object Values

对象的 values 方法与 entries 类似,但返回对象值的一维数组:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>JavaScript Object Methods</h2>
  5. <p>对象的 Values() 方法的作用是:从一个对象返回一个数组:</p>
  6. <p id="demo"></p>
  7. <script>
  8. const person = {
  9. firstName : "埃隆",
  10. lastName : "马斯克",
  11. age : 50,
  12. eyeColor : "蓝色"
  13. };
  14. document.getElementById("demo").innerHTML = Object.values(person);
  15. </script>
  16. </body>
  17. </html>

Firefox和Chrome是第一款支持 JavaScript 对象的 Values 的浏览器:

方法
Values 方法Chrome 54Edge 14Firefox 47Safari 10.1Opera 41
2016年10月2016年8月2016年6月2017年3月2016年10月

JavaScript Async Functions

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>JavaScript async / await</h2>
  5. <p>等待3秒(3000毫秒)以更改此页。</p>
  6. <h1 id="demo"></h1>
  7. <script>
  8. async function myDisplay() {
  9. let myPromise = new Promise(function(myResolve, myReject) {
  10. setTimeout(function() { myResolve("I love You !!"); }, 3000);
  11. });
  12. document.getElementById("demo").innerHTML = await myPromise;
  13. }
  14. myDisplay();
  15. </script>
  16. </body>
  17. </html>

Firefox和Chrome是第一款支持 JavaScript 对象的 async 的浏览器:

方法
async 方法Chrome 54Edge 14Firefox 47Safari 10.1Opera 41
2016年10月2016年8月2016年6月2017年3月2016年10月

分类导航