首页 > 编程语言 >[JavaScript]变量提升

[JavaScript]变量提升

时间:2023-02-06 16:26:16浏览次数:33  
标签:变量 JavaScript 提升 var 声明 fn name

什么是变量提升?

简单来说,就是JavaScript在执行程序时,会先把变量声明这一操作提前。换句话来说,就是不会在程序执行过程中声明变量。

例子:

function fn(){
  console.log(name);
  var name = "RoastDuck";
fn();
}

执行结果:

对于先使用后声明这种操作,凭借直觉,程序一定是错的。但是但是但是,控制台没有报错,只是说undedined,这就说明,变量已经声明,只不过是没有赋值。值得注意的是,变量提升只是把声明提前,并不会给变量赋值。也就是说,在变量提升的前提下,var name = "RoastDuck" var name没有区别.

程序不听使唤,难以接受。
但是但是但是,变量提升的问题在ES6版本中得到了解决。
我们可以使用let或const声明变量,把变量限制在作用域内。

例子:

function fn(){
  console.log(name);
  let name = "RoastDuck";
}
fn();

执行结果:

有了错误提示,就不用担心,什么时候手抖,把声明弄后面了!!!

标签:变量,JavaScript,提升,var,声明,fn,name
From: https://www.cnblogs.com/Rev-RoastDuck/p/17095578.html

相关文章

  • 向Hive程序传递变量的三种方法
    ​​​​图1外部向Hive程序中传递变量的方法使用Hive编写程序最常用的方法是将Hive语句写到文件中,然后使用hive-ffilename.hql来批量执行查询语句。经常需要将外部参......
  • Python新手常见问题二:不正确的使用类变量
    不正确的使用类变量看下面一个例子:>>>classA(object):...x=1...>>>classB(A):...pass...>>>classC(A):...pass...>>>printA.x,B.x,C.x111看起......
  • MATLAB实现随机森林(RF)回归与自变量影响程度分析
      本文介绍基于MATLAB,利用随机森林(RF)算法实现回归预测,以及自变量重要性排序的操作。目录1分解代码1.1最优叶子节点数与树数确定1.2循环准备1.3数据划分1.4随机森林......
  • 直播app开发搭建,纯javascript实现图片放大镜效果
    直播app开发搭建,纯javascript实现图片放大镜效果1、放大镜组成1)目标图片,一般是小图 2)鼠标移动上去的一个等比例小框框图 3)弹窗显示一个等比例的大图 2、实现分......
  • JavaScript实现拖动元素交换位置
     通过JavaScript实现拖动元素交换位置(如下图所示)实现方式HTML5提供了draggable属性,当它的值为true时,表示元素可拖动。在实现之前,首先我们需要明白两个单词的意思......
  • javascript之预编译
        Javascript按照<script>段的方式进行预编译处理相关的代码段,并且按照先预定义变量,再预定义函数的方式进行预编译!而且无论变量/函数在段中的任何地点进行显式......
  • javascript提交示例
    <td>@Html.ActionLink("编辑","Edit",new{id=1})<text>|</text>@Html.ActionLink("删除","Delete",new{id=2})<text>|</text><ahref="javascrip......
  • 一、python——变量和简单数据类型
    message="helloworld"print(message)message="Let'sgo"print(message)#title()以首字母大写显示每个单词name="zhouyuting"print(name.title())name......
  • JavaScript中和动画相关的几个事件
    JavaScript中有以下几种与动画相关的事件:requestAnimationFrame这个事件可以在浏览器重绘之前触发,通常用于制作高性能动画。下面是一个使用requestAnimationFrame来制作简......
  • DeepFlow AutoTagging 10x 性能提升实战
    为了探究云原生应用系统的内部状态,我们希望向观测数据中注入尽量丰富的标签,这些标签以往通过开发人员手动在代码中注入,或通过配置Promtheus、OpenTelemetry实现,一方面造成......