ECMAScript函數不關心傳入的參數個數,也不關心參數的數據類型數組
定義函數的時候接收n個參數,能夠調用任意個參數app
function關鍵字定義的函數
在function關鍵字建立的函數內部,能夠訪問arguments對象ide
arguments對象是類數組對象(不是Array的實例)
能夠使用arguments[0]、arguments[1]等
也能夠使用arguments.length函數
ECMAScript函數的頁遊參數只是爲了方便寫出來的,不是必須寫的code
function fun() {
console.log(arguments.length);
}
fun()// 0
fun(1)// 1
fun(1, 'apple')// 2
fun(1, 'apple', { name: "jrj" })// 3
www.pizei.com
arguments能夠和命名參數一塊兒使用
arguments對象的值會和對應的命名參數同步對象
function fun(num1,num2){
arguments[1] = 10;
console.log(arguments[0] + num2);
修改arguments對象中元素的值,命名參數num1也會跟着改變
高程四 可是這種同步是單向的,修改命名參數的值,arguments中對應的值不會變
vscode 實踐發現也會變ip
arguments的長度和實際函數調用的參數長度有關,和命名參數的個數無關get
function fun(num1){
console.log(arguments.length);
箭頭函數的arguments
箭頭函數定義的函數內部不能使用arguments,會報錯同步
擴展運算符和arguments
對於arguments來講,並不知道擴展運算符的存在,而是按照調用函數時傳入的參數接收每個值it