函式的預設值與動態引數arguments的總結

2022-07-28 14:27:19 字數 3335 閱讀 3625

在js函式與作用域,了解函式基本概念中,我們發現當函式的實參有乙個沒有上傳的時候,對應的形參time展示的值就是undefined,如下**所示:

1

doctype html

>

2<

html

lang

="en"

>

3<

head

>

4<

meta

charset

="utf-8"

>

5<

meta

name

="viewport"

content

="width=device-width, initial-scale=1.0"

>

6<

title

>函式的預設值問題

title

>

7<

script

>

8function

myshelf(num,time)914

}15vartime=7

;16myshelf(

10) ;

//有乙個實參沒有傳;

17var

time=7

;18myshelf(10,

12) ;

//var time=12;

19script

>

20head

>

21<

body

>

22body

>

23html

>

怎麼解決函式預設值undefined的情況,可以用if條件語句,或者邏輯或.用方式一,含義是如果time的預設值等於undefined,那麼此時time值等於7,否則不執行此語句;方式二:time=time或者time=8,前者是如果time=time,那麼此時就傳入了實參,不執行後面的語句或者是time=8,說明此時沒有傳值進來,那麼函式此時time的預設值為8

1

doctype html

>

2<

html

lang

="en"

>

3<

head

>

4<

meta

charset

="utf-8"

>

5<

meta

name

="viewport"

content

="width=device-width, initial-scale=1.0"

>

6<

title

>函式預設值undefined解決2種方式

title

>

7<

script

>

8function

myshelf(num,time)920

}21vartime=7

;22myshelf(

10) ;

23var

time=7

;24myshelf(10,

12) ;

25script

>

26head

>

27<

body

>

28body

>

29html

>

函式除了預設值還有動態引數,比方說我想要這些數字add(1,2,4,5,23)全部相加,但是在return z=x+y的情況下下只是相加2個數字,那麼其他的數字能不能相加了,當然是可以的,怎麼辦了?這時候就用到了我們的動態陣列arguments了,函式add(1,2,4,5,23)這裡面的數值都以陣列的形式傳遞到定義的function裡面執行,此時的arguments=>[1,2,4,5,23]約等於,定義function裡面的x,y對應x=arguments[0];y=arguments[1];數值的計算用到for迴圈的陣列遍歷,陣列的長度為length*此時function add(x,y)裡面的x,y可以不用寫.

1

doctype html

>

2<

html

lang

="en"

>

3<

head

>

4<

meta

charset

="utf-8"

>

5<

meta

name

="viewport"

content

="width=device-width, initial-scale=1.0"

>

6<

title

>動態引數arguments

title

>

7<

script

>8//

function add(x,y)

12//

var rs=add(1,2,4,5,23); //函式得呼叫

13//

console.log('1+2 4,5,23='+rs);

14//

var rs=add(3,4);

15//

console.log('3+4='+rs);

16//

*************************=無情分割線******************************=

17function

add(x,y)

25return

z;26

//return z=x+y;27}

28varrs=

add(1,

2,4,

5,23);

29console.log(

'1+2+4+5+23='+

rs);

30varrs=

add(3,

4);31console.log(

'3+4='+

rs);

32varrs=

add(

111,

222,

333,

444,

555);

33console.log(

'111+222 333,444,555='+

rs);

34script

>

35head

>

36<

body

>

37body

>

38html

>

函式引數的預設值與解構賦值的預設值

function foo 物件,沒有預設值,只有解構賦值引數的預設值 console.log x,y foo undefined 5 foo 1 5 foo 1 2 foo typeerror cannot read property x of undefined上面 只使用了物件的解構賦值預設值,...

函式(引數,預設值)

js定義函式引數沒有非常嚴格的要求,可以有也可以沒有,在呼叫的時候也是,引數可以有可以沒有,也可以和定義時的引數個數不一致 沒有給count傳入引數,預設為10 也可以直接在引數中給count賦值 但是特別注意的是不能給count傳入0,因為0與undefined都是false,因此count傳入的...

函式引數預設值

include 函式預設值為0 intmul int x 0 c語言編譯器會報錯,c 不會 intmain int argc,char ar 預設值不需要在定義時給出,宣告時給出即可 intmul int x 函式預設引數的規則 引數的預設值必須從右向左匹配 函式呼叫時使用了預設值,則後續引數必須使...