JavaScript学习笔记 - 函数

3. 函数

3.1 函数的形参和实参

  • 形参修改时,并不会影响到实参
  • 函数调用时,输入参数的个数可以多于函数定义的参数个数
  • 函数内部隐藏的对象, 由数组 arguments 保存函数实参的信息
        <script type="text/javascript">
            var a = 10;
            var b = 20;
            
            // 求和函数
            // num1和num2形参
            function sum(num1,num2){
                // 形参修改时,并不会影响到实参
                num1 = 13;
            }
            
            // a和b实参
            sum(a,b);
            
            // alert(a);
            
            
            // 3个参数
            // arguments: 函数内部隐藏的对象,保存实参的信息
            function test(num1,num2,num3){
                // alert(num1+num2+num3);
                
                // alert(arguments[3]);
                // alert(arguments.length);
            }
            
            // test(10,20,30);
            test(10,20,30,40);
        </script> 

3.2 函数的作用域

预解析

  • 所有变量,在代码真正运行前,都非赋值为定义的值;
  • 所有的函数,在真正运行前,都是整个函数块;
  • 遇到重名: 只留下一个; 变量和函数重名,只留下函数

逐行解析

  • 表达式: = + -

备注:

  • 函数也是一个作用域
  • 函数中,局部优先
<script type="text/javascript">
    var a = 1;
    function fn1(){
        alert(a);   // 1
        a = 2;
    }
    fn1();
    alert(a); // 2
</script>
<script type="text/javascript">
    var a = 1;
    function fn1(){
        alert(a);   // undefined
        var a = 2;
    }
    fn1();
    alert(a);       // 1
</script>
<script type="text/javascript">
    var a = 1;
    function fn1(a){
        alert(a);   // undefined
        a = 2;
     }
     fn1();
     alert(a);  // 1
</script>
<script type="text/javascript">
    alert(a); // 输出: function(){ alert("2----函数a");  }
    var a = 1;
    function a(){
        alert("1----函数a");
    }
    alert(a); // 输出 1
    var a = 3;
    alert(a); // 输出 3
    function a(){
        alert("2----函数a");
    }
    alert(a); // 输出 3
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容