zoukankan      html  css  js  c++  java
  • 第24天:js-函数变量声明提升

    一、函数声明
    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();
    function fun1(){
    console.log(num);
    var num=20;//变量提升
    }//undefined
    相当于
    var num=10;
    fun1();
    function fun1(){
    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>
  • 相关阅读:
    编程总结2
    编程总结3
    《秋季学期学习总结》
    《人生路上对我影响最大的三位老师》
    第八周编程总结
    第七周编程总结
    第六周编程总结
    第五周作业
    第四周编程总结
    第三周编程总结
  • 原文地址:https://www.cnblogs.com/le220/p/7487627.html
Copyright © 2011-2022 走看看