首頁 >web前端 >前端問答 >es6箭頭函數是什麼意思

es6箭頭函數是什麼意思

WBOY
WBOY原創
2022-03-30 17:15:022142瀏覽

在es6中,箭頭函數是一種使用「=>」定義函數的新語法;箭頭函數的函數體內的this指向總是指向定義它所在的對象,而不會指向呼叫它的對象,且不可以改變this的改變,語法為「let fun=(參數) => {函數體};」。

es6箭頭函數是什麼意思

本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。

es6箭頭函數是什麼意思

在ES6中,箭頭函數是其中最有趣的新增功能。顧名思義,箭頭函數是一種使用箭頭(=>)定義函數的新語法,但是它與傳統的JavaScript函數有些許不同,主要集中在以下方面:

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

  • 不能透過new關鍵字呼叫

  • 沒有原型

  • 不可以改變this的綁定

  • #不支援arguments物件

  • 不支援重複的命名參數

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

如下:

var f = v = > v;
//等同于
var f = function(v){
      return v;
}
var sum = (num1,num2) => num1+num2 ;
//等同于
var sum = function(num1,num2){
      return num1+num2
}
[1,2,3].map(function (x) {
      return x * x;
});
// 箭头函数写法
[1,2,3].map(x => x * x);//简洁了许多

從例子我們可以看出,省略了function,花括號‘{}’用‘=>’代替了。這種寫法更簡潔了。

範例如下;

//1、参数默认值 位置在所有形参的后面
    //es6之前的采取的默认值只能变相采取
    function test(a,b) {
        a=a||2;
        b=b||2;
        return a*b
    }
    console.log(test());
//但是这个有弊端  当我们传递的值为0的时候,还是会走默认值。改造之后
    function test1(a,b) {
        a=typeof a==="undefined"?2:a;
        b=typeof b==="undefined"?2:b;
        return a*b
    }
    console.log(test1(0,0))
//    es6为我们提供了默认值
//    语法糖:  function(a,b=2){}
     let test2=(a=2,b=2) =>{
        return a*b
    };
    console.log(test2());

輸出結果:

es6箭頭函數是什麼意思

#【相關推薦:javascript影片教學web前端

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

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