首頁 > web前端 > js教程 > ES6中展開符號的介紹

ES6中展開符號的介紹

不言
發布: 2018-11-14 15:41:54
轉載
3578 人瀏覽過

這篇文章帶給大家的內容是關於ES6中展開符號的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

概述

展開符號真的是一個非常好用的東西,我常用於字串分割、數組合併、陣列拷貝、物件合併、物件拷貝。

0x001 語法

...iterableObj
登入後複製

0x002 函數呼叫的時候參數展開

這是在函數呼叫的時候,將參數展開,和剩餘參數有區別,剩餘參數是在函數宣告中使用

myFunction(...iterableObj);
登入後複製

案例

function add(a, b){
    return a + b
}
add(...[1,2]) // 相当于 add(1,2) -> 3
登入後複製

陣列宣告展開

可用於數值組合並

[...[1,2,3],4] // 相当于[1,2,3].push(4) -> [1,2,3,4]
[...'1234'] // 相当于 '1234'.split("")
登入後複製

物件展開

可用於對象合併、物件拷貝

{...{name:1},age:2} // 相当于 Objeact.assign({},{name:1},{age:2}) -> {name:1,age:2}
{...{name:1}} // 相当于 Object.assign({},{name:1}) -> {name:1}
登入後複製

 babel 翻譯

字串/陣列展開

原始碼

[...'1234']
登入後複製

翻譯後

function _toConsumableArray(arr) {
 if (Array.isArray(arr)) {
  for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
   arr2[i] = arr[i]; 
   }
   return arr2; 
   } else { 
   return Array.from(arr); 
   } 
   }

[].concat(_toConsumableArray('1234'));
登入後複製

物件展開

原始碼

let a={...{name:1}}
登入後複製

翻譯後

var _extends = Object.assign || function (target) {
 for (var i = 1; i < arguments.length; i++) {
  var source = arguments[i]; 
  for (var key in source) {
   if (Object.prototype.hasOwnProperty.call(source, key))
    { target[key] = source[key]; 
    } 
    } 
    }
     return target; 
     };

var a = _extends({ name: 1 });
登入後複製

以上是ES6中展開符號的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:https://segmentfault.com/a/1190000016977223
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板