【ES】筆記-ES6的函數rest參數用法

es6中引入了rest參數,樣式形如…xxx,用于獲取函數的多余參數,這樣就不需要使用arguments對象了。rest參數搭配的一個變量是一個數組,該變量將多余的參數放入數組中。例如:

function add(...value){console.log(value);let sum=0;for(var val of value){sum+=val    }return sum
}
add(2,3,5);//10

上面代碼的add函數是一個求和函數,利用rest參數,可以向該函數傳入任意數目的參數。

下面是一個rest參數代替arguments變量的例子:

function sortNumbers(){return Array.prototype.slice.call(arguments).sort();
}//rest寫法
const sortNumbers=(...numbers)=>numbers.sort();

上面兩種寫法rest參數的寫法更加自然簡潔。

arguments對象不是數組,只是一個類數組對象。為了使用數組的方法,得使用Array.prototype.slice.call先將其轉為數組。rest參數就不存在這個問題,它就是一個真正的數組,數組的方法都可以使用。下面是一個利用rest參數改寫數組的push方法。

function push(array,...items){items.forEach(function(item){    array.push(item);console.log(item);})
}
var a=[];
push(a,1,2,3);

還需要注意的是

rest參數之后不能有其他參數,否則會報錯。

函數的length屬性不包括rest參數。

(function(a) {}).length  // 1
(function(...a) {}).length  // 0
(function(a, ...b) {}).length  // 1

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38752.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38752.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38752.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pytest自動生成測試類 demo

一、 pytest自動生成測試類 demo # -*- coding:utf-8 -*- # Author: 喵醬 # time: 2023 - 08 -15 # File: test4.py # desc: import pytest import unittest# 動態生成測試類def create_test_class(class_name:str, test_cases:list) -> type:"""生成測試類…

前端面試的性能優化部分(10)每天10個小知識點

目錄 系列文章目錄前端面試的性能優化部分(1)每天10個小知識點前端面試的性能優化部分(2)每天10個小知識點前端面試的性能優化部分(3)每天10個小知識點前端面試的性能優化部分(4)每天…

TiDB數據庫從入門到精通系列之一:TiDB數據庫的軟硬件環境要求和系統配置檢查

TiDB數據庫從入門到精通系列之一:TiDB數據庫的軟硬件環境要求和系統配置檢查 一、軟件和硬件配置要求1.操作系統及平臺要求2.服務器建議配置3.網絡要求4.磁盤空間要求 二、TiDB 環境與系統配置檢查1.在 TiKV 部署目標機器上添加數據盤 EXT4 文件系統掛載參數2.設置 …

RESTAPI簡介與DRF使用

RESTAPI 以資源為url&#xff0c;通過不同的請求方式實現不同的行為。 以資源名作為url POST:增 …/student/ GET&#xff1a;查所有 …/student/ GET&#xff1a;查單個 …/student/<pk>/ 獲取idpk的學生 DELETE&#xff1a;刪 …/student/<pk>/ PUT&#…

輕量級 Spring Task 任務調度可視化管理

Spring Task/Spring Scheduler 傻傻分不清 首先做一下“名詞解釋”&#xff0c;分清楚這兩者的區別&#xff1a; Spring Task Spring Task 是 Spring 框架自帶的一個任務調度模塊&#xff0c;提供了基本的任務調度功能。它是通過 Java 的 Timer 和 TimerTask 類來實現的&…

python獲取音樂文件

瀏覽器打開音樂地址 http://www.htqyy.com/top/hot 點擊第一首歌曲&#xff0c;會打開新的網頁并且可以獲取 改歌曲的id&#xff0c;就是url中的33 在播放頁面點擊F12&#xff0c;打開開發者調試功能 如下圖所示&#xff0c;在script腳本中可以獲取歌曲的下載數據 host&#…

滑模控制器理論推導和matlab/simulink實例分享

滑模控制的運動軌跡主要分為兩個方面&#xff1a;(1)系統的任意初始狀態向滑模面運動階段&#xff1b;(2)系統到達滑模面后并且慢慢趨于穩定的階段。所以&#xff0c;對于滑模變結構控制器的設計&#xff0c;對應于系統運動的兩個階段&#xff0c;可以分為兩個部分&#xff1a;…

從規劃到落地,數字化工廠如何破局

隨著第四次工業革命的推進&#xff0c;數字化工廠解決方案已經成為制造業轉型升級的必經之路。然而&#xff0c;在實際推進過程中&#xff0c;許多企業卻面臨著規劃難以落地、投資回報率低、人才短缺等問題。如何破局&#xff0c;實現數字化工廠的順利轉型&#xff0c;成為制造…

卡爾曼濾波

初見Kalman 假設我養了一只豬&#xff1a; 一周前&#xff0c;這只豬的體重是460.5kg。注意&#xff0c;在這里我用了0.5&#xff0c;表示其實我對這只豬一周前的體重并不是那么確定的&#xff0c;也就是說&#xff0c;46kg這個體重有0.5kg的誤差。現在&#xff0c;我又養了這只…

Java基礎(十二)面向對象編程 OOP

一、抽象數據類型 1.面向對象基本概念 1. 面向對象 面向對象程序設計&#xff08;OOP&#xff09;是一種基于對象概念的軟件開發方法&#xff0c;是目前軟件開發的主流方式。 常見面向對象的語言&#xff1a;C 、Python 、Java 常見面向過程的語言&#xff1a;C 面向對象的三…

計算機競賽 python+opencv+機器學習車牌識別

0 前言 &#x1f525; 優質競賽項目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于機器學習的車牌識別系統 &#x1f947;學長這里給一個題目綜合評分(每項滿分5分) 難度系數&#xff1a;4分工作量&#xff1a;4分創新點&#xff1a;3分 該項目較為新穎&#xff0c;適…

使用插件實現pdf,word預覽功能

效果 代碼&#xff1a; 插件地址&#xff1a; https://github.com/501351981/vue-office <a-modalv-model:visible"visible":title"title"ok"handleOk":bodyStyle"bodyStyle":width"1200":maskClosable"false"…

如何在Vue表單處理中實現表單的條件渲染

在Vue開發中&#xff0c;我們經常會遇到需要根據某些條件來渲染表單的情況。這種情況下&#xff0c;我們需要靈活地根據條件來展示或隱藏一些表單字段。本文將介紹如何在Vue中實現表單的條件渲染&#xff0c;并提供了代碼示例。 一、使用v-if指令實現簡單的條件渲染 在Vue中&a…

2023年網絡安全比賽--綜合滲透測試(超詳細)

一、競賽時間 180分鐘 共計3小時 二、競賽階段 競賽階段 任務階段 競賽任務 競賽時間 分值 1.掃描目標靶機將靶機開放的所有端口,當作flag提交(例:21,22,23); 2.掃描目標靶機將靶機的http服務版本信息當作flag提交(例:apache 2.3.4); 3.靶機網站存在目錄遍歷漏洞,請將…

Linux設備樹詳解

Linux 設備樹詳解 Linux 操作系統早期是針對個人電腦設備而開發的操作系統&#xff0c;而個人電腦處理器產商較為單一&#xff08;例如只有 Intel&#xff0c;AMD&#xff09;同時個人電腦產商均使用 Intel 或 AMD 制造的處理器&#xff0c;業界形成了統一的總線/硬件接口標準…

JavaScript進階 第二天

深入對象內置構造函數 一. 深入對象 創建對象三種方式構造函數實例成員&靜態成員 1.1 創建對象三種方式 ① 利用對象字面量創建對象 const o {name: 哈哈 } ② 利用new Object 創建對象 const o new Object({ name: 哈哈 }) ③ 構造函數創建對象 1.2 構造函數 …

探索規律:Python地圖數據可視化藝術

文章目錄 一 基礎地圖使用二 國內疫情可視化圖表2.1 實現步驟2.2 完整代碼2.3 運行結果 一 基礎地圖使用 使用 Pyecharts 構建地圖可視化也是很簡單的。Pyecharts 支持多種地圖類型&#xff0c;包括普通地圖、熱力圖、散點地圖等。以下是一個構建簡單地圖的示例&#xff0c;以…

認識Transformer:入門知識

視頻鏈接&#xff1a; https://www.youtube.com/watch?vugWDIIOHtPA&listPLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index60 文章目錄 Self-Attention layerMulti-head self-attentionPositional encodingSeq2Seq with AttentionTransformerUniversal Transformer Seq2Seq …

淺談 EMP-SSL + 代碼解讀:自監督對比學習的一種極簡主義風

論文鏈接&#xff1a;https://arxiv.org/pdf/2304.03977.pdf 代碼&#xff1a;https://github.com/tsb0601/EMP-SSL 其他學習鏈接&#xff1a;突破自監督學習效率極限&#xff01;馬毅、LeCun聯合發布EMP-SSL&#xff1a;無需花哨trick&#xff0c;30個epoch即可實現SOTA 主要…

08 qt進程和網絡編程(cs模型)

一 、qt進程 qt中進程最主要的任務就是啟動額外應用程序 并且跟他們之間通信。進程類為QProcess 定義用途Header:#include qmake:QT += coreInherits:QIODevice//繼承于IO設備類1.1 QProcess基本使用 第一步:創建一個QProcess對象 // process = new QProcess(this); //說明…