zoukankan      html  css  js  c++  java
  • js变量提升的坑

    关于js变量提升

    变量提升

    在js函数内部是可以直接修改全局的变量的,个人感觉是不好的设计, 但是确实存在这个概念
    原理:

    1. 先查看有没有函数变量bb
    2. 查看形参有没有bb
    3. 查看全局有没有bb
    4. 报错, 找不到bb变量

    修改函数内部

    var bb = 1;
    
    function foo(cc){
        var bb = 2; // 这里的bb, 其实是函数的局部变量
        console.log(cc);
    }
    
    foo(bb); // 1
    console.log(bb); // 1
    

    修改的是形参

    var bb = 1;
    
    function foo(bb){
        bb = 2; // 这里看起来像是变量提升, 但其实是修改的形参, 不会影响到全局变量
        console.log(bb);
    }
    
    foo(bb);  // 2
    console.log(bb); // 1
    

    修改的是全局

    var bb = 1;
    
    function foo(cc){
        bb = 2; // 这里的bb, 其实是修改了全局的变量bb
        console.log(cc);
    }
    
    foo(bb); // 1
    console.log(bb); // 2
    
  • 相关阅读:
    POJ
    POJ
    POJ
    POJ-1797 Heavy Transportation
    POJ
    HDU
    CF-576 C MP3 (离散化)
    Pandas 用法汇总
    Pandas 的使用
    Numpy 算术函数
  • 原文地址:https://www.cnblogs.com/fepapa/p/11672576.html
Copyright © 2011-2022 走看看