• Function Scope


    JavaScript’s function scope means that all variables declared within a function are visi-
    ble throughout the body of the function. Curiously, this means that variables are even
    visible before they are declared. This feature of JavaScript is informally known as hoist-
    ing: JavaScript code behaves as if all variable declarations in a function (but not any
    associated assignments) are “hoisted” to the top of the function. Consider the following
    code:

    var scope = "global";
    function f() {
    console.log(scope); // Prints "undefined", not "global"
    var scope = "local"; // Variable initialized here, but defined everywhere
    console.log(scope); // Prints "local"
    }

    You might think that the first line of the function would print “global”, because the
    var statement declaring the local variable has not yet been executed. Because of the
    rules of function scope, however, this is not what happens. The local variable is defined
    throughout the body of the function, which means the global variable by the same name
    is hidden throughout the function. Although the local variable is defined throughout,
    it is not actually initialized until the var statement is executed. Thus, the function above
    is equivalent to the following, in which the variable declaration is “hoisted” to the top
    and the variable initialization is left where it is:

    function f() {
    var scope; //Local variable is declared at the top of the function
    console.log(scope);//It exists here, but still has "undefined" value
    scope = "local";//Now we initialize it and give it a value
    console.log(scope);//And here it has the value we expect
    }
  • 相关阅读:
    体验js之美第八课-面向对象创建和继承终结篇
    从零到一:用Phaser.js写意地开发小游戏(Chapter 3
    HTML5 进阶系列:拖放 API 实现拖放排序
    五款轻量型bug管理工具横向测评
    用原生js写一个"多动症"的简历
    HTML5中新增Javascript特性
    Angular2入门系列(五)———— 路由参数设置
    移动端真机调试实战经验
    Java经典习题44
    Java经典习题43
  • 原文地址:https://www.cnblogs.com/kfx2007/p/4075583.html
Copyright © 2020-2023  润新知