zoukankan      html  css  js  c++  java
  • 作用域的提升

     在JS中,因为浏览器的解析式自上而下的,所以经常会涉及到函数或者function的作用域问题,这里简单的说明已ixa

    一 函数的作用域提升

    举例   :

    function f2(){
    console.log(i)
    };
    f2();
    var i=10;


    此时的结果为undefinded,因为函数作用域的提升,此时的可以写成下面的方式

    var i;
    function f2(){
    console.log(i)
    };
    f2();
    i=10;

    函数在调用之前,仅仅是声明了 i,但并未给i 赋值,所以会导致 结果为undefinded。

    所以总结,如果函数在调用之前未赋值,则结果为undefinded,如果在赋值之后,则结果为赋值结果,在代码中为了避免这种情况,通常将赋值放在前,调用放在之后。


    比较有趣的例子

    var i=10;
    function i(){
    console.log("嘿嘿");
    }
    console.log(i); //结果为10

    这里的结果为10 是因为该函数能写成下列的方式

    var i;
    function i(){
    console.log("嘿嘿");
    }
    i=10;
    console.log(i);
    所以只有i的赋值没有提升,结果为10。


    如果console.log(i());


    则结果为不是一个function。

     
  • 相关阅读:
    lsof命令详解
    nmap命令详解
    ss命令详解
    netstat命令详解
    ifup,ifdown命令详解
    playbook部署nginx
    cento7忘记root密码怎么办
    正确关闭selinux
    使用ssh-agent管理私钥
    gitlab中的CI
  • 原文地址:https://www.cnblogs.com/yuyufeng/p/5544904.html
Copyright © 2011-2022 走看看