欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js中函數(shù)的length是多少

 更新時(shí)間:2021年09月06日 10:14:03   作者:Sunshine_Lin  
本文主要介紹了js中函數(shù)的length是多少,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

我今天給大家講講function的length,到底是怎么算的。希望大家能從中學(xué)到東西,并且可以鞏固一下基礎(chǔ)。

為什么

為什么我會(huì)想到這個(gè)知識(shí)點(diǎn)呢?因?yàn)樽蛲?,在一個(gè)群里,有一位同學(xué)在討論一道字節(jié)跳動(dòng)的面試題

123['toString'].length + 123 = ?

說實(shí)話這道題,我一開始也沒答出來。其實(shí)我是知道,面試官想考Number原型上的toString方法,但是我卡在了toString函數(shù)的length是多少這個(gè)難題上。所以才有了今天這篇文章

到底是多少?

形參個(gè)數(shù)

咱們來看看下面這個(gè)例子

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有多少個(gè)形參,length就是多少。但是事實(shí)真是這樣嗎?繼續(xù)往下看

默認(rèn)參數(shù)

如果有默認(rèn)參數(shù)的話,函數(shù)的length會(huì)是多少呢?

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,就是第一個(gè)具有默認(rèn)值之前的參數(shù)個(gè)數(shù)

剩余參數(shù)

在函數(shù)的形參中,還有剩余參數(shù)這個(gè)東西,那如果具有剩余參數(shù),會(huì)是怎么算呢?

function fn1(name, ...args) {}

console.log(fn1.length) // 1

可以看出,剩余參數(shù)是不算進(jìn)length的計(jì)算之中的

總結(jié)

總結(jié)之前,先公布123['toString'].length + 123 = ?的答案是124

總結(jié)就是:length 是函數(shù)對(duì)象的一個(gè)屬性值,指該函數(shù)有多少個(gè)必須要傳入的參數(shù),即形參的個(gè)數(shù)。形參的數(shù)量不包括剩余參數(shù)個(gè)數(shù),僅包括第一個(gè)具有默認(rèn)值之前的參數(shù)個(gè)數(shù)

到此這篇關(guān)于js中函數(shù)的length是多少的文章就介紹到這了,更多相關(guān)js 函數(shù)的length內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論