脚本宝典收集整理的这篇文章主要介绍了

js声明提升

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

浏览器引擎会在解释javascript代码之前首先对其进行编译。编译阶段中的一部分工作就是找到所有的声明,并用合适的作用域将它们关联起来,包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理,置于作用域前端。

变量声明提升

变量作用域指变量起作用的范围。变量分为全局变量和局部变量。全局变量在全局都拥有定义;而局部变量只能在函数内有效。

在函数体内,同名的局部变量或者参数的优先级会高于全局变量。也就是说,如果函数内存在和全局变量同名的局部变量或者参数,那么全局变量将会被局部变量覆盖。
es6前是没有块级作用域的,通过声明提升变量无论在哪里声明,都会有定义,只有定义没有值是undefined

   console.log(a);
   var a=1;
   console.log(a);

上面函数执行时类似如下过程

  var a;
  console.log(a);
  a=1;
  console.log(a);

函数声明提升

函数的创建方式

函数声明
函数表达式

函数声明 function handleClick(){}
函数表达式 var a=function(){}

两种方式不同点 函数声明有有声明的提升,表达式只有定义以后才能使用
下面例子可以看出

   console.log(a)
   function a(){
      console.log(1)
   }
   var a=function(){
      console.log(2)
   }
   console.log(a);

当函数和变量的声明,前者优先级更高

 "use strict";
 console.log(a); // fn a
 function a (){

 }
 var a=1;
 console.log(a); // a 1 

总结

以上是脚本宝典为你收集整理的

js声明提升

全部内容,希望文章能够帮你解决

js声明提升

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过