zoukankan      html  css  js  c++  java
  • 作用域题目

    1、题目

    var a = 10;
    (function () {
        console.log(a)
        a = 5
        console.log(window.a)
        var a = 20;
        console.log(a)
    })()

    // undefined
    // 10
    // 20

    2、解释

    undefined 10 20,原因是作用域问题,在内部声名var a = 20;相当于先声明var a;然后再执行赋值操作,这是在IIFE内形成的独立作用域,

    如果把var a=20注释掉,那么a只有在外部有声明,显示的就是外部的A变量的值了。结果A会是10 5   5

    执行解析步骤:
    var a = undefined;
    a = 10;
    (function () {
    // 变量提升(预解析)
    var a = undefined;
    console.log(a); // 输出undefined
    a = 5;
    console.log(window.a); // 找window(全局)对象的a, 输出10
    a = 20;
    console.log(a); // 输出20
    })()
  • 相关阅读:
    5-29
    5-28
    5-27
    -5-26
    5-25
    5-24
    5-21
    RabbitMQ消息中间件极速入门与实战
    细说java多线程之内存可见性
    全面解析java注解
  • 原文地址:https://www.cnblogs.com/anbozhu7/p/11269104.html
Copyright © 2011-2022 走看看