一、函數聲明
1、自定義函數
function fun1(){
alert("我是自定義函數");
}
fun2();//函數不調用,自己不執行
2、直接量聲明
var fun2=function(){
alert("直接量聲明");
fun2();
3、利用Function關鍵字聲明
var fun3=new Function("var a=10;b=20;alert(a+b)");
fun3();
二、變量聲明提升
如果在一個函數體内部聲明了一個變量,不管這個變量函數外部有沒有,先執行函數内部的變量,會将變量聲明提升到函數開始部分,但是不會指派。
在函數體内部聲明變量,會把該聲明提升到函數體的最頂端。但是隻提升變量聲明,不指派。
var num=10;
fun1();
console.log(num);
var num=20;//變量提升
}//undefined
相當于
var num;
console.log(num);
num=20;
三、函數傳參
函數實參個數要與形參個數相同,arguments.length可以擷取函數實參的個數
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Title</title>
6 <script>
7 /*變量提升*/
8 /*window.onload=function(){
9 var num=10;
10 fun1();
11 function fun1(){
12 console.log(num);
13 var num=20;//變量提升
14 }
15 }//結果:undefined*/
16
17 /*var a=18;
18 f1();
19 function f1(){
20 var b=9;
21 console.log(a);
22 console.log(b);
23 var a='123';
24 }//undefined,9
25 */
26 /*函數傳參*/
27 /*function f1(a,b){
28 console.log(a+b);
29 }
30 f1(1,2);//3
31 f1(5);//NaN*/
32
33 /*檢測函數參數個數比對*/
34 function fn(a,b){
35 console.log(fn.length);//擷取函數形參的個數
36 console.log(arguments.length);//得到的是實參的個數
37 if(fn.length==arguments.length){
38 console.log(a+b);
39 }else{
40 console.log("對不起,您的參數不比對,正确的參數個數為:"+fn.length);
41 }
42 }
43 fn(5,3);//2,2,8
44 fn(2,3,4)//2,3,"對不起..."
45
46
47 </script>
48 </head>
49 <body>
50
51 </body>
52 </html>