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

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

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

  • 相关阅读:
    PhpStorm Swoole 和 CI 代码自动补全
    python正则表达式匹配多行
    ES6 Template Strings(转)
    IntelliJ隐藏特定后缀文件
    网络游戏术语(转)
    mac查看当前调用tcp的进程并关闭指定进程
    袭击Mercurial SCM(HG)
    T 泛型转换
    UiAutomator源代码分析之UiAutomatorBridge框架
    ASP.NET MVC 入门8、ModelState与数据验证
  • 原文地址:https://www.cnblogs.com/gongOnTheWay/p/4870697.html
Copyright © 2011-2022 走看看