ES6中rest引數詳細講解
(1) Rest 引數接受函式的多餘引數,組成一個陣列,放在形參的最後,形式如下:
function func(a, b, ...theArgs){ // ...}
(2) Rest引數和arguments物件的區別:
rest引數只包括那些沒有給出名稱的引數,arguments包含所有引數
arguments 物件不是真正的陣列,而rest 引數是陣列例項,可以直接應用sort, map, forEach, pop等方法
arguments 物件擁有一些自己額外的功能
(3) 從 arguments 轉向陣列
Rest 引數簡化了使用 arguments 獲取多餘引數的方法
// arguments 方法function func(a, b){ var args = Array.prototype.slice.call(arguments); console.log(args) } func(1,2)// Rest 方法function func(a, b, ...args){ // ...}
注意,rest 引數之後不能再有其他引數(即,只能是最後一個引數),否則會報錯
function func(a, ...b, c) { // ...}// Rest parameter must be last formal parameter
函式的 length 屬性,不包括rest引數
(function(a) {}).length // 1(function(...a) {}).length // 0(function(a, b, ...c)).length // 2
(4) Rest引數可以被結構(通俗一點,將rest引數的資料解析後一一對應)不要忘記引數用[]括起來,因為它是陣列
function f(...[a, b, c]) { return a + b + c; } f(1) //NaN 因為只傳遞一個值,其實需要三個值 f(1, 2, 3) // 6 f(1, 2, 3, 4) // 6 (第四值沒有與之對應的變數名)
轉載:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4560/viewspace-2822337/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- expdp/impdp 詳細引數解釋
- Java中的static詳細講解Java
- MySQL relay log 詳細引數解釋MySql
- dart類詳細講解Dart
- 監聽配置細節引數詳解兩則
- 超詳細https握手與數字簽名講解HTTP
- 指標的詳細講解指標
- Go Struct超詳細講解GoStruct
- JQuery中$.ajax()方法引數詳解jQuery
- react的詳細知識講解!React
- MyBatis-Plus詳細講解(一)MyBatis
- 詳細講解函式呼叫原理函式
- ORACLE中Cursor_sharing引數詳解Oracle
- AD模數轉換(ADC)在音訊處理中的詳細深度講解音訊
- ajax 引數詳解
- OGG引數詳解
- Spring @Conditional註解 詳細講解及示例Spring
- 前端模組化IIFE,commonjs,AMD,UMD,ES6 Module規範超詳細講解前端JS
- OpenCV中的findContours函式引數詳解OpenCV函式
- oracle中的processes,session,transaction引數詳解OracleSession
- redis配置檔案中各引數詳解Redis
- 詳細講解23種設計模式設計模式
- Dockerfile - 引數與詳解Docker
- lsblk命令引數詳解
- Flink Checkpoint 引數詳解
- 函式引數詳解函式
- tar命令引數詳解
- 演算法--揹包九講(詳細講解+程式碼)演算法
- 在 ES6 中,for...of 和 for...in 講解
- es6中的引數預設值
- ES6中Promise用法詳解Promise
- spring 詳細講解(ioc,依賴注入,aop)Spring依賴注入
- Mbps 及其相關單位詳細講解
- MVC 三層架構案例詳細講解MVC架構
- 網路安全Bypass網路卡詳細講解
- DeFi和CeFi的區別詳細講解
- 詳細講解!RabbitMQ防止資料丟失MQ
- JQuery Datatables Columns API 引數詳細說明jQueryAPI