在js函式與作用域,了解函式基本概念中,我們發現當函式的實參有乙個沒有上傳的時候,對應的形參time展示的值就是undefined,如下**所示:
1doctype 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
1doctype 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可以不用寫.
1doctype 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 函式預設引數的規則 引數的預設值必須從右向左匹配 函式呼叫時使用了預設值,則後續引數必須使...