zoukankan      html  css  js  c++  java
  • 函数声明,变量声明和参数之间的优先级

    可以直接用代码测试一下:

    function test(mm){
        var mm ; 
        console.log(mm);
        function mm(){}
    }
    
    test(12)
    2015-10-12 08:50:53.434 VM646:4 mm(){}

    说明:这个例子不足以说明函数和变量同名的时候(变量未赋值的情况下),函数声明高于变量声明,如果调换var mm 和 function mm(){}的顺序是不是会有其他的现象那?

    function test(mm){
         function mm(){}
         console.log(mm);
         var mm; 
    }
    test(12)
    VM886:5 mm(){}
    2015-10-12 09:08:58.363 VM886:5 mm(){}

    说明:这样证明函数和变量同名的时候(变量未赋值的情况下),函数声明高于变量声明的结论成立。

    注意到,我每次都给参数赋值了,但是参数的值没有起到任何作用,所以说明,函数声明优先级即大于变量声明又大于参数的,但是变量声明和参数的优先级是什么?

    function test(mm){
        var mm 
        console.log(mm);
        }
    
    test(12)
    2015-10-12 09:16:37.589 VM952:4 12

    说明:参数的优先级别大于变量的声明

    综上所述:同名情况,函数声明>参数>变量声明

    但是:如果mm赋值会如何?

    function test(mm){
        var mm =112 ; 
        console.log(mm);
        function mm(){}
    }
    test(12)
    2015-10-12 08:59:42.104 VM847:4 112

    说明:函数和变量同名的时候,且变量赋值的情况下,变量高于函数声明

    总结:只是证明了这个,但是具体的原理,还有待于发现

  • 相关阅读:
    AJAX 三级联动
    AJAX JSON类型返回
    AJAX 汽车详细信息练习
    JQ AJAX
    对话框关联两个Layout时
    删除,拨打电话,发送短信对话框
    自定义对话框,时间日期对话框
    一般对话框,单选复选对话框
    JAVA。String转Int
    加监听器,单选复选按钮
  • 原文地址:https://www.cnblogs.com/gongOnTheWay/p/4870697.html
Copyright © 2011-2022 走看看