首頁 >web前端 >前端問答 >es6 =>是什麼意思

es6 =>是什麼意思

青灯夜游
青灯夜游原創
2022-04-19 17:37:223985瀏覽

es6中,「=>」是指箭頭函數,是一種函數的簡寫方式,語法為(參數)=>{函數體};」。箭頭函數沒原型,沒this、 arguments、super和「new.target」綁定,其值由外圍最近一層非箭頭函數決定;也不能透過new關鍵字呼叫。

es6 =>是什麼意思

  • ##本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

  • #=>
  • 是箭頭函數,是ES6標準中新增的一種新的函數。顧名思義,箭頭函數是一種使用箭頭(=>)定義函數的新語法,箭頭函數表達式的語法比函數表達式更簡潔,但是它與傳統的JavaScript函數有些許不同,主要集中在以下方面:

  • 沒有this、super、arguments和new.target綁定,其值由外圍最近一層非箭頭函數決定

不能透過new關鍵字呼叫

沒有原型

##arguments物件

不支援重複的命名參數

#函數體內的this的指向總是指向定義它所在的對象,而不會指向呼叫它的對象,我們知道es5中的函數是誰執行它,它就指向誰。

基礎語法

(param1, param2, …, paramN) => { statements }
(param1, param2, …, paramN) => expression
//相当于:(param1, param2, …, paramN) =>{ return expression; }
// 当只有一个参数时,圆括号是可选的:
(singleParam) => { statements }
singleParam => {statements }
// 没有参数的函数应该写成一对圆括号:
() => { statements }

簡單範例

<pre class="brush:php;toolbar:false;">x =&gt; x * x</pre>即相當於:

function (x) {
 return x * x;
}

更短的函數範例

        var elements = [
            &#39;Hydrogen&#39;,
            &#39;Helium&#39;,
            &#39;Lithium&#39;,
            &#39;Beryllium&#39;
        ];
        
        elements.map(function(element) { 
            return element.length; 
        }); // 返回数组:[8, 6, 7, 9]
        
        // 上面的普通函数可以改写成如下的箭头函数
        elements.map((element) => {
            return element.length;
        }); // [8, 6, 7, 9]
        
        // 当箭头函数只有一个参数时,可以省略参数的圆括号
        elements.map(element => {
        return element.length;
        }); // [8, 6, 7, 9]
        
        // 当箭头函数的函数体只有一个 `return` 语句时,可以省略 `return` 关键字和方法体的花括号
        elements.map(element => element.length); // [8, 6, 7, 9]
        
        // 在这个例子中,因为我们只需要 `length` 属性,所以可以使用参数解构
        // 需要注意的是字符串 `"length"` 是我们想要获得的属性的名称,而 `lengthFooBArX` 则只是个变量名,
        // 可以替换成任意合法的变量名
        elements.map(({ "length": lengthFooBArX }) => lengthFooBArX); // [8, 6, 7, 9]

#三元運算子範例

箭頭函數也可以使用條件(三元)運算子:es6 =>是什麼意思

        var simple = a => a > 15 ? 15 : a;
        simple(16); // 15
        simple(10); // 10

        let max = (a, b) => a > b ? a : b;

不與new一起使用箭頭函數不能用作建構器,和new一起用會拋出錯誤。

        var Foo = () => {};
        var foo = new Foo(); // TypeError: Foo is not a constructor

###沒有prototype屬性########箭頭函數沒有prototype屬性。###
        var Foo = () => {};
        console.log(Foo.prototype); // undefined
###### #函數體#########箭頭函數可以有一個「簡寫體」或常見的「區塊體」。######在一個簡寫體中,只需要一個表達式,並且附加一個隱式的傳回值。在區塊體中,必須使用明確的###return###語句。###
        var func = x => x * x;                  
        // 简写函数 省略return(简写体)

        var func = (x, y) => { return x + y; }; 
        //常规编写 明确的返回值(块体)
######箭頭函數遞歸######
        var fact = (x) => ( x==0 ?  1 : x*fact(x-1) );
        fact(5);       // 120
###############################################################################################################################################################################################瀏覽器相容性##################【相關推薦:###javascript影片教學###、###web前端###】####

以上是es6 =>是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn