JS中函數的length以及arguments的length如何得到?


function a(x,y){}
a.length // 2
 
function b(x,y=2,z){}
b.length // 1
 
function c(x,...args){}
c.length //1
length 是JS函數對象的一個屬性值,該值是指 “該函數有多少個必須要傳入的參數”,即形參的個數
形參的數量不包括剩余參數個數,僅包括 “第一個具有默認值之前的參數個數”

在沒有默認值時,fn.length指的是形參的個數,如果有參數有默認值,那么就取第一個具有默認值之前的參數的個數。

函數的實參個數應該怎么獲取?
arguments.length //在函數內部使用,表示實際傳入的參數個數,在運行時計算,和形參個數無關

  例子:

function a(x,y,z){
   console.log(arguments.length); // 3
}(1,2,3)
 
function b(x,y=2){
    console.log(arguments.length) // 3
}(1,2,3)
 
 
function c(x,y=2){
    console.log(arguments.length) // 1

}

  總結來說就是:function.length  獲取的是形參的長度   而在函數內部定義的argument.length 獲取的是 實參的長度


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM