美文网首页
变量提升

变量提升

作者: lssj | 来源:发表于2019-11-21 15:03 被阅读0次

参考信息:https://www.runoob.com/js/js-hoisting.html

对变量提升的解释:

关键字:变量(或者函数)、声明、提升,这是三个部分,表示把(所有)变量(函数)的声明操作提升到了执行操作的前面(以上信息限定在当前作用域内)。

变量声明与函数声明:

变量声明的时候仅仅是声明,只是表示它存在,后续代码执行可以对它进行任意操作,包括赋值。当一个函数被声明时,不光是声明了函数(名称),此时该函数也被赋予了函数体,所以我们将一个function fn1(){}写在后面,而将函数执行fn1()写在前面可以执行,这是一个函数的声明提升。
(下图第一行红字,如果不声明,该变量为全局变量,如果先使用,并在下方声明,该变量则为局部变量)


image

当引用了一个js文件时,先提升所有的变量声明,然后才开始从第一行代码开始执行。举例证明变量提升的存在

//a.js文件    
console.log(x)
//这样就会在控制台抛出错误,因为变量x即未声明(var x),
//也未使用(x=1),所以直接使console调用就会抛出错误
//b.js文件    
console.log(x)
var x
//这样在控制台不会抛错,但是打印出来的是undefined,因为打印的时候还未赋值

相关文章

  • 浅析关于 JS 作用域的几个高频知识点

    闭包 词法作用域 变量提升 变量提升 什么是变量提升 顾名思义,变量提升指的是,在声明变量的时候,变量的声明位置会...

  • JS中的提升

    JS中包含两种提升,变量提升和函数提升。 变量提升 变量提升只能是var或者function声明的变量或者函数,l...

  • 变量提升问题

    这是 变量提升问题 1. 变量提升, 很简单,就是把变量提升提到函数的top的地方。我们需要说明的是,变量提升 只...

  • JavaScript__变量声明提升(Hoisting)

    摘取:http://www.jb51.net/article/30719.htm 变量提升 变量提升就是把变量提升...

  • var,let,const 的区别

    变量提升 变量提升即将变量声明提升到它所在作用域最前面,而且仅仅是提升变量,不会提升所赋的值 执行流程 作用域 在...

  • 执行上下文和执行上下文栈

    一、变量提升和函数提升 首先回顾一下什么是变量提升。 变量声明提升,通过var定义(声明)的变量,在定义语句之前就...

  • let const var

    变量提升 函数会优先于变量提升; 函数提升会把整个函数移到作用域顶部 变量提升智慧把变量的定义移到作用域顶部 wi...

  • 2021-04-02

    变量提升和函数提升以及他们的优先级 1,变量提升:变量提升是指将变量声明提升到它所在的作用域的最开始部分 2,函数...

  • 关于变量提升

    函数提升的优先级要高于变量提升,变量提升到函数声明的后面; 变量提升,但是赋值不提升,函数表达式不提升;

  • Javascript 变量执行过程 和 数组 & 对象的区别

    变量提升 JS执行过程1. 先提升(先提升函数,再提升变量,如果名字一样,变量提升会覆盖函数提升)2. 再执行,如...

网友评论

      本文标题:变量提升

      本文链接:https://www.haomeiwen.com/subject/tydwpctx.html