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

溫馨提示×

溫馨提示×

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

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

JavaScript需要知道的小技巧有哪些

發布時間:2021-12-15 13:31:59 來源:億速云 閱讀:173 作者:小新 欄目:開發技術

這篇文章主要介紹JavaScript需要知道的小技巧有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

    一、神奇的擴展運算符

    擴展運算符(spread)是三個點( ... ), 可以說我在 JavaScript 中最喜歡的運算符了。我主要在以下 3 種情況下使用:

    1.拷貝數組

    const arr = [1, 2, 3, 4]
    const newArr = [...arr]
    
    console.log(newArr)  // [1, 2, 3, 4]

    2.合并數組

    const numArr = [1, 2, 3, 4]
    const alphaArr = ['a', 'b', 'c']
    const newArr = [...numArr, ...alphaArr]
    
    console.log(newArr) // [1, 2, 3, 4, 'a', 'b', 'c']

    3.展開對象

    const rectangle = { width: 10, height: 10 }
    const cube = { ...rectangle, length: 7 }
    
    console.log(cube) // {width: 10, height: 10, length: 7}

    二、進行空檢查的最佳方法

    你還記得你寫的第一個空檢查代碼嗎?當 JavaScript 還沒有現在這個完善時,我曾在我的舊代碼中這樣寫:

    if (foo !== null && foo !== undefined) { }

    后來,我的生命被簡單的 if 拯救!

    if (foo) {}

    只要條件值 foo 不是下列值,都將為真值“

    • null

    • undefined

    • NaN

    • 空字符串 ("")

    • false

    除了簡單的 if 之外,現代 JavaScript 的可選鏈操作符 ?. 與空值合并運算符 ?? 可以使我們的代碼更加簡潔

    1.可選鏈操作符

    可選鏈操作符是訪問嵌套對象屬性的安全方式。這意味著在訪問一長串對象屬性時,我們不必進行多次空檢查。當嘗試訪問可能不存在的對象屬性時,可選鏈操作符將會使表達式更短、更簡明

    以下示例檢查客戶地址的郵政編碼是否為 null :

    const client = {
      name: 'Liu Xing',
      address: {
        zipcode: '1234'
      }
    }
    
    // 老的取值方式
    if (client && client.address && client.address.zipcode) {}
    // 更加現代的可選鏈操作符方式
    if (client?.address?.zipcode) {}

    2.空值合并運算符

    空值合并操作符( ?? )是一個邏輯操作符,當左側的操作數為 null 或者 undefined 時,返回其右側操作數,否則返回左側操作數。

    const defaultMessage = 'Hello JavaScript 之禪'
    const msg = defaultMessage ?? 'Hello Liu Xing';
    console.log(msg); // Hello JavaScript 之禪'

    如果 defaultMessage 是 null 或者 undefined 則將打印出 Hello Liu Xing

    當我們按順序使用它時,它會變得更強大:

    console.log(firstName ?? lastName ?? 'anonymous')

    在這個例子中,如果 firstName 不是 null/undefined,它將顯示 firstName, 否則,如果 lastName 不是 null/undefined,它將顯示 lastName。 最后,如果它們都為 null/undefined,它將顯示“anonymous”。

    三、使用 .map()、.reduce() 和 .filter()

    接下來,談論函數式和反應式編程的強大技術!幾年前我第一次使用它時,它真的為我打開了一扇新的大門。 現在每次看到這些簡潔的代碼,我仍然被它的美麗所震撼。

    今天我舉例介紹三個最常用的方法:map、reduce 和 filter。

    在新冠疫情 之前,我們去巴黎度假。于是他們去超市買了些東西。他們買了食物和日用品。但是所有的物品都是歐元,他們想知道每件物品的價格以及他們食物的人民幣總成本。

    鑒于 1 歐元等于 7.18 日元。

    以傳統方式,我們將使用經典循環來完成:

    const items = [
      {
        name: 'pineapple',
        price: 2,
        type: 'food'
      },
      {
        name: 'beef',
        price: 20,
        type: 'food'
      },
      {
        name: 'advocate',
        price: 1,
        type: 'food'
      },
      {
        name: 'shampoo',
        price: 5,
        type: 'other'
      }
    ]
    
    let sum = 0
    const itemsInYuan = []
    
    for (let i = 0; i < items.length; i++) {
      const item = items[i]
      item.price *= 7.18
      itemsInYuan.push(item)
      if (item.type === 'food') {
        sum += item.price
      }
    }
    
    console.log(itemsInYuan)
    /*
    [
      { name: 'pineapple', price: 14.36, type: 'food' },
      { name: 'beef', price: 143.6, type: 'food' },
      { name: 'advocate', price: 7.18, type: 'food' },
      { name: 'shampoo', price: 35.9, type: 'other' }
    ]
    */
    console.log(sum) // 165.14
    現在我們來使用現在 JavaScript 提供的函數式編程方法來實現這個計算。
    
    const itemsInYuan = items.map(item => {
      const itemInYuan = { ...item }
      itemInYuan.price *= 7.18
      return itemInYuan
    })
    
    const sum = itemsInYuan.filter(item => item.type === 'food').reduce((total, item) => total + item.price, 0)

    上述示例使用 map 方法將歐元轉為日元,使用 filter 過濾掉非食品的項目,使用 reduce 來計算價格總和。

    以上是“JavaScript需要知道的小技巧有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

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

    AI

    临潭县| 衡阳市| 皋兰县| 崇州市| 惠东县| 静海县| 东明县| 固阳县| 孟津县| 元谋县| 高阳县| 榆树市| 安图县| 玉林市| 汉沽区| 武川县| 大田县| 岑溪市| 长寿区| 永顺县| 海丰县| 竹山县| 巴东县| 广昌县| 泰和县| 漳平市| 张家口市| 喀喇| 建瓯市| 晋城| 渭源县| 梧州市| 乡宁县| 天峨县| 图们市| 崇信县| 巴东县| 吴堡县| 龙口市| 咸阳市| 辽阳县|