91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ECMAscrip函數的擴展怎么使用

發布時間:2021-12-02 14:12:01 來源:億速云 閱讀:146 作者:iii 欄目:開發技術

本篇內容主要講解“ECMAscrip函數的擴展怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ECMAscrip函數的擴展怎么使用”吧!

    1.函數參數的默認值

    1.1函數參數指定默認值

    ECMAScript 2015中,允許為函數的參數添加默認值,將默認值直接寫在參數的后面即可。

    示例代碼如下所示:

    // 函數參數指定默認值
    function fun(a = 1, b = 2) {
      console.log(a + b);
    }
    fun() // 3

    值得注意的是:參數變量是默認聲明的,所以不能用let或const再次聲明, 否則會拋出異常。

    還有就是默認參數的位置都是在參數列表的最后面,否則會引發歧義,該省略的參數不能省略,

    如下代碼示例:

    // 默認參數的位置應該是在最后面
    function fun(a = 1, b) {
      console.log(a, b);
    }
    // 調用函數,傳遞一個參數
    fun(20); // 20 undefined

    1.2與解耦賦值配合使用

    參數默認值可以與解構賦值的默認值,結合起來使用。可以通過兩種方式為其設置默認值。示例代碼如下所示:

    function fun([a, b = 5] = [3]) {
      console.log(a, b);
    }
    fun() // 3 5

    1.3函數參數的作用域

    一旦設置了參數的默認值,函數進行聲明初始化時,參數會形成一個單獨的作用域 。等到初始化結束,這個作用域就會消失。這種語法行為,在不設置參數默認值時,是不會出現的。

    示例代碼如下所示:

    let x = 5
    
    function fun(y = x) {
      x = 10
      console.log(y);
    }
    fun() // 5

    2.rest參數

    ECMAScript 2015引入rest參數(形式為...變量名),用于獲取函數的多余參數,這樣就不需要使用arguments對象了。rest 參數搭配的變量是一個數組,該變量將多余的參數放入數組中。

    示例代碼如下所示:

    // 使用 arguments 對象最傳入的參數求出最大值
    function max1() {
      return Math.max.apply(null, arguments)
    }
    
    console.log(max1(1, 5, 6, 33, 65, 35, 15)); // 65
    
    // 使用 rest 參數
    function max2(...arg) {
      return Math.max(...arg)
    }
    console.log(max2(1, 5, 6, 33, 65, 35, 15)); // 65

    3.箭頭函數

    3.1什么是箭頭函數

    ECMAScript 2015新增了箭頭函數(又稱胖剪頭函數), 相比函數表達式具有較短的語法并以詞法的方式綁定this 。箭頭函數在大多數情況下都是匿名的。

    箭頭函數的語法結構如下所示:

    // 基本語法結構
    (參數1, 參數2, ..., 參數N) => {函數聲明}
    (參數1, 參數2, ..., 參數N) => 表達式(單一)
    // 相當于:(參數1, 參數2, ..., 參數N) => {return 表達式}
    
    // 當只有一個參數時,小可號是可選的
    (參數) => {函數聲明}
    // 或者
    參數 => {函數聲明}
    
    // 沒有參數應該寫一對小括號
    () => {函數聲明}
    
    // 可以配合 rest 參數和默認參數
    (參數1, 參數2, ...rest) => {函數聲明}
    (參數1, 參數2, ..., 參數N = 默認值N) => {函數聲明}

    箭頭函數也可以為其定義函數名,語法結構如下所示:

    let funName = (參數1, 參數2, ..., 參數N) => {函數聲明}

    示例代碼如下所示:

    let sum = (a, b) => {
      return a + b
    }
    console.log(sum(10, 20)); //30

    3.2箭頭函數的注意事項

    箭頭函數有幾個使用注意點:

    • 函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象。

    示例代碼如下所示:

    // ES5 寫法
    let fun1 = function () {
      console.log(this.id);
    }
    // ES6 箭頭函數寫法
    let fun2 = () => {
      console.log(this.id);
    }
    
    let obj1 = {
      id: 666,
      fun: fun1
    }
    let obj2 = {
      id: 666,
      fun: fun2
    }
    obj1.fun() // 666
    obj2.fun() // undefined

    由代碼我們可以看出,普通函數的this是調用時確定的,而我們的箭頭函數的this是在定義時就確定了的。

    • 不可以當作構造函數,也就是說,不可以使用new命令,否則會拋出一個錯誤。

    • 不可以使用arguments對象,該對象在函數體內不存在。如果要用,可以用rest參數代替。

    4.函數的尾調用

    尾調用是函數式編程的一個重要概念,本身非常簡單,一句話就能說清楚,就是指某個函數的最后一步是調用另一個函數。

    示例代碼如下所示:

    let x = (x) => {
      return 2 * x
    }
    
    let y = function (y) {
      return x(y)
    }
    
    console.log(y(20)); // 40

    到此,相信大家對“ECMAscrip函數的擴展怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    哈巴河县| 芒康县| 宝清县| 招远市| 公主岭市| 庆城县| 威海市| 红桥区| 兴仁县| 广昌县| 泸西县| 涞水县| 涪陵区| 玉门市| 杂多县| 东乌珠穆沁旗| 高雄市| 山东省| 临邑县| 石首市| 耒阳市| 高安市| 寿宁县| 乐亭县| 舟曲县| 蓬溪县| 哈尔滨市| 枣强县| 岑巩县| 江油市| 绥滨县| 麻江县| 青田县| 玉林市| 绥芬河市| 望谟县| 文安县| 镇平县| 思南县| 威宁| 全椒县|