zoukankan      html  css  js  c++  java
  • JavaScript变量声明与变量声明提前

    JavaScript变量声明

    JavaScript中存储数据的容器称为变量。用关键字和标识符创建新变量的语句,称为变量声明。可以通过关键字var进行变量声明,在ES6中增加了let、const关键字声明变量的语法。

    JavaScript变量声明提前

    在JavaScript的函数作用域(function scope)是指在函数内var声明的所有变量在函数体内始终是可见的。JavaScript的这个特性被非正式地称为声明提前(hosting),即JavaScript函数里声明的所有变量(但不涉及赋值)都被“提前”至函数体的顶部。

        var scope = "global"; 
        function f() {
          console.log(scope);//=>"undefined"
          var scope = "local";//
          console.log(scope);//=>"local"
        }
    

    由于函数作用域的特性,局部变量在整个函数体内始终是有定义的,也就是说,在函数体内局部变量遮盖了同名全局变量。尽管如此,只有在程序执行到var语句的时候,局部变量才会被真正赋值。因此,上述过程等价于:将函数的变量声明“提前”至函数体顶部,同时变量初始化留在原来的位置:

        var scope = "global";
        function f() {
          var scope;  //在函数顶部声明了局部变量
          console.log(scope);//变量存在,但是其值是“undefined”
          scope = "local";//这里将其初始化并赋值
          console.log(scope);//=>这里它具有了我们所期望的值
        }
    

      

  • 相关阅读:
    百度诉360案一审宣判索赔1亿判赔70万
    软件设计之状态机
    linux下so获得自己文件位置的路径
    openssh-server
    安卓下查看kmsg内核日志
    Python kmean
    numpy
    HostMonitor监控主机状态
    ubuntu MySQL安装和设置
    Python Post img
  • 原文地址:https://www.cnblogs.com/f6056/p/11834091.html
Copyright © 2011-2022 走看看