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);//=>这里它具有了我们所期望的值
        }
    

      

  • 相关阅读:
    IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
    5个CSS3技术实现设计增强
    SQL Server 2005 中的分区表和索引
    推荐12款可用于前端开发的免费文本编辑器
    960 Grid System
    初识Byte
    在线制作网站
    sqlserver操作符篇 优化
    ASP.NET 异常处理
    Photoshop 隐藏的快捷键
  • 原文地址:https://www.cnblogs.com/f6056/p/11834091.html
Copyright © 2011-2022 走看看