zoukankan      html  css  js  c++  java
  • 变量声明提升和函数声明提升

     

     一道面试题被虐惨了 看了书看了资料整理的 不记得看了谁的文章了 这是整理后 有部分一样的不要打我//

     


     变量声明提升

     

    <!DOCTYPE html>
    <html>
    <head><script>
    var i = 20;
    function n(){
        alert(i);
    };
    n();
    </script>
    </head>
    </html>   //结果是20
    <!DOCTYPE html>
    <html>
    <head><script>
    var i = 20;
    function n(){
        alert(i);
        var i = 50;
    };
    n();
    </script>
    </head>
    </html>   //结果是undefined

     

    ↑变量声明提升会把变量声明提前,但是变量初始化还在后面,如果在变量初始化前面输出,变量还未初始化,就会alert出undefined,这是变量声明提升。

     

     

    函数声明提升是在执行代码之前会读取函数声明。可以把函数声明放在调用他的语句后面。

    函数声明是把一个函数值赋值给了变量,所以可以进行函数声明提前。函数表达式是一个表达式是把函数对象赋值给了变量,所以不能进行函数声明提前。

     

     

    函数表达式和函数声明的区别:

    函数声明格式
    function(arg0,arg1,arg2){
        //函数体
    } 
    函数表达式格式
    var functionName = function(arg0,arg1,arg2){
        //函数体
    }

    1、函数声明必须有标识符,也就是函数名,函数表达式可以省略函数名。

    2、函数声明提升,可以把函数声明放在调用他的语句后面。函数表达式不可以,会报错。

    3、函数声明语句可以出现在全局代码中,或者内嵌在其他函数中,不能出现在循环、条件判断或者try/finally以及with语句中。

  • 相关阅读:
    数据库中 dbo是什么意思
    常用的设计模式 介绍
    ReferenceEquals和 == 和equals()的比较
    IOC 控制反转模式
    集群和负载均衡
    数据库 读写分离
    C# 中using的几个用途
    WCF ABC
    SQL Server数据库性能优化(三)之 硬件瓶颈分析
    SQL Server数据库性能优化(二)之 索引优化
  • 原文地址:https://www.cnblogs.com/Narcotic/p/6233136.html
Copyright © 2011-2022 走看看