ES2019新特性的學習


前言

前端技術更新的實在是太快了,各種框架百花齊放,隨着NodeJs不斷的興起,各種構建工具也是層出不窮,這不,前兩周尤雨溪開源了Vue.js3.0源碼之后,很多大佬早已把源碼剖析皮都不剩了;昨天NodeJs13.0又發布了,真的是學學學不動了,不過既然選擇了程序員這條道路,就得時刻保持新技術的學習,ES2019(ES10)年初都發布了,但是項目中常用的還是ES6以及核心版本,所以還是有必須學習一下ES2019新特性的。

注:調試代碼瀏覽器版本: Google Chrome76.0.3809.132(64位)

1.Array.prototype flat

將多層級的數組平鋪成一個數組在項目開發中還是常用的,flat() 方法會按照一個可指定的深度遞歸遍歷數組,並將所有元素與遍歷到的子數組中的元素合並為一個新數組返回

語法

var newArray = arr.flat([depth])

參數
指定要提取嵌套數組的結構深度,默認值為1,當層級超過一層的情況下,用Infinity可以把多級數組平鋪為一個數組

返回值
一個包含將數組與子數組中所有元素的新數組

var arr=[1,2,[3,4,[5,6]]];
var arr2=arr.flat(); //[1, 2, 3, 4, [5, 6]]
var arr3=arr.flat(Infinity); //[1, 2, 3, 4, 5, 6] 

2.String.prototype trimStart and trimEnd

js的String類型已經有trim()方法了,起作用時去除字符串前后空格

1.trimStart()方法從字符串的開頭刪除空格。trimLeft()是此方法的別名
返回值
一個新字符串,表示從其開頭(左端)除去空格的調用字符串

var str="  Hello world  ";
var str1=str.trimStart(); //Hello world   
var str2=str.trimLeft(); //Hello world   

2.trimEnd()方法從一個字符串的末端移除空白字符。trimRight() 是這個方法的別名
返回值
一個新字符串,表示從調用字串的末(右)端除去空白

var str="  Hello world  ";
var str1=str.trimEnd(); //  Hello world 
var str2=str.trimRight(); //  Hello world

3.Object.fromEntries

Object.fromEntries是Object.entries的反向方法

Object.entries是將一個鍵值對對象,轉換為Array

Object.fromEntries是將Array或Map等對象,轉換為鍵值對對象

var arr=[
  ['name','tom'],
  ['age','18']
];
var arr1=Object.fromEntries(arr);
console.log(arr1);
// {name: "tom", age: "18"}

4.Function.prototype.toString

toString()方法返回一個表示當前函數源代碼的字符串

function sayHello(){
  // say Hello
  alert('hello');
}
console.log(sayHello.toString());

// 打印結果
function sayHello(){
  // say Hello
  alert('hello');
}

5.可選的catch綁定(Catch Binding)

之前使用try catch的時候,catch有個必須要寫的參數

try{
  alert(msg);
}catch(err){
  console.log(err);
}
// msg is not defined

現在catch后面不用寫參數,方便了一點

try{
  // code
}catch{
  //
}

6.JSON超集

此提議的動機是 JSON 字符串可以包含未轉義的 U + 2028 LINE SEPARATOR 和 U + 2029 PARAGRAPH SEPARATOR 字符,而 ECMAScript 字符串則不能。在 ES2019 之前,它會產生錯誤SyntaxError: Invalid or unexpected token

const LS = eval('"\u2028"');
const PS = eval("'\u2029'");

以上只列了幾個常用的ES2019新特性,並舉例加以說明,恰逢今天有事10月24號程序員節,那就祝大家節日快樂,技術節節高升吧。

參考資料:
MDN


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM