美文网首页
声明提前(hoisting)

声明提前(hoisting)

作者: shijiatongxue | 来源:发表于2019-04-12 12:28 被阅读0次

在JavaScript中,在函数内声明的所有变量在函数体内始终是可见的。变量甚至在声明之前已经可用。这个特性被非正式地称为声明提前,即JS函数里声明的所有变量都被“提前”至函数的顶部。

一个例子✍:

var scope = "global";
function f(){
  console.log(scope); // 不输出"global"
  var scope = "local";
  console.log(scope);
}

第一个log()方法不会搜索到全局的变量“scope”,并打印“global”,由于声明提前,上面代码相当于:

var scope = "global";
function f(){
  var scope; // 变量提前至所在作用域的顶部
  console.log(scope); // >>= "undefined"
  scope = "local";
  console.log(scope); // >>= "local"
}

来源:JavaScript权威指南

相关文章

  • 声明提前(hoisting)

    在JavaScript中,在函数内声明的所有变量在函数体内始终是可见的。变量甚至在声明之前已经可用。这个特性被非正...

  • JavaScript简要

    注意 声明提前(hoisting) null和undefined不能包含属性 with语句 函数的call方法 J...

  • 关于js的变量提升(hoisting)

    javascript的变量声明具有hoisting机制,JavaScript引擎在执行的时候,会把所有变量的声明都...

  • javascript变量声明提升(hoisting)

    java script的变量声明具有hoisting机制,JavaScript引擎在执行的时候,会把所有变量的声明...

  • [深入理解ES6]块级绑定

    var声明与变量提升 变量提升(hoisting):使用var关键字声明的变量,无论声明位置在何处,都会被视为声明...

  • JS高程:读书摘要(四)函数

    函数表达式 函数表达式和函数声明的区别 函数声明提升(function declaration hoisting)...

  • ES6学习-块级作用域绑定

    var声明及变量提升(Hoisting)机制 在函数作用域通过var声明的变量,无论在哪里声明都会被当成作用域顶部...

  • js函数和原型对象

    函数提升(Hoisting):函数可以在声明之前调用 自调用函数、函数声明、函数表达式、匿名函数、箭头函数: 自调...

  • 声明提前

    var a=1; function test() { console.log(a)//function a(b...

  • 声明提前

    javascript函数在执行时会将声明提前到函数执行的位置,但不会对变量赋值,直到执行到声明变量并赋值的语句才会...

网友评论

      本文标题:声明提前(hoisting)

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