js中函數(shù)的length是多少
前言
我今天給大家講講function的length,到底是怎么算的。希望大家能從中學(xué)到東西,并且可以鞏固一下基礎(chǔ)。
為什么
為什么我會想到這個知識點呢?因為昨晚,在一個群里,有一位同學(xué)在討論一道字節(jié)跳動的面試題
123['toString'].length + 123 = ?
說實話這道題,我一開始也沒答出來。其實我是知道,面試官想考Number原型上的toString方法,但是我卡在了toString函數(shù)的length是多少這個難題上。所以才有了今天這篇文章
到底是多少?
形參個數(shù)
咱們來看看下面這個例子
function fn1 () {} function fn2 (name) {} function fn3 (name, age) {} console.log(fn1.length) // 0 console.log(fn2.length) // 1 console.log(fn3.length) // 2
可以看出,function有多少個形參,length就是多少。但是事實真是這樣嗎?繼續(xù)往下看
默認參數(shù)
如果有默認參數(shù)的話,函數(shù)的length會是多少呢?
function fn1 (name) {} function fn2 (name = '林三心') {} function fn3 (name, age = 22) {} function fn4 (name, age = 22, gender) {} function fn5(name = '林三心', age, gender) { } console.log(fn1.length) // 1 console.log(fn2.length) // 0 console.log(fn3.length) // 1 console.log(fn4.length) // 1 console.log(fn5.length) // 0
說明了,function的length,就是第一個具有默認值之前的參數(shù)個數(shù)
剩余參數(shù)
在函數(shù)的形參中,還有剩余參數(shù)這個東西,那如果具有剩余參數(shù),會是怎么算呢?
function fn1(name, ...args) {} console.log(fn1.length) // 1
可以看出,剩余參數(shù)是不算進length的計算之中的
總結(jié)
總結(jié)之前,先公布123['toString'].length + 123 = ?的答案是124
總結(jié)就是:length 是函數(shù)對象的一個屬性值,指該函數(shù)有多少個必須要傳入的參數(shù),即形參的個數(shù)。形參的數(shù)量不包括剩余參數(shù)個數(shù),僅包括第一個具有默認值之前的參數(shù)個數(shù)
到此這篇關(guān)于js中函數(shù)的length是多少的文章就介紹到這了,更多相關(guān)js 函數(shù)的length內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
小發(fā)現(xiàn)之淺談location.search與location.hash的問題
下面小編就為大家?guī)硪黄“l(fā)現(xiàn)之淺談location.search與location.hash的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06js實現(xiàn)黑色簡易的滑動門網(wǎng)頁tab選項卡效果
這篇文章主要介紹了js實現(xiàn)黑色簡易的滑動門網(wǎng)頁tab選項卡效果,可實現(xiàn)簡單的鼠標滑過tab項切換對應(yīng)菜單的功能,涉及javascript鼠標事件控制頁面元素的遍歷與樣式改變實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08原生javascript+css3編寫的3D魔方動畫旋扭特效
這篇文章主要介紹了原生javascript+css3編寫的3D魔方動畫旋扭特效的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03js調(diào)用父框架函數(shù)與彈窗調(diào)用父頁面函數(shù)的簡單方法
下面小編就為大家?guī)硪黄猨s調(diào)用父框架函數(shù)與彈窗調(diào)用父頁面函數(shù)的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11Javascript實現(xiàn)Array和String互轉(zhuǎn)換的方法
這篇文章主要介紹了Javascript實現(xiàn)Array和String互轉(zhuǎn)換的方法,涉及JavaScript中toString方法與split方法的使用技巧,需要的朋友可以參考下2015-12-12JavaScript模板引擎應(yīng)用場景及實現(xiàn)原理詳解
這篇文章主要介紹了JavaScript模板引擎應(yīng)用場景及實現(xiàn)原理,結(jié)合實例形式詳細分析了javascript模版引擎的具體應(yīng)用場景、實現(xiàn)原理、相關(guān)操作技巧與注意事項,需要的朋友可以參考下2018-12-12