JS声明提前

直接上一段代码解释下声明提前

alert(a)          // 弹出函数a

a();              // 弹出10, 因为函数定义全部都提升上去

var a=3;

function a(){

    alert(10)

alert(a)          // 弹出的是3

a=6;             

a();              //报错,提示a不是函数

声明提前:在js中,用var声明的变量或者函数,都会被提升到作用域最前面,但只是声明提前,赋值并不会提前。

牢记这一句话,然后我们整理下代码:

// var变量和函数声明提前,顺序和代码中的顺序一致,但是赋值不提前。

var a;

function a(){

    alert(10)

}

alert(a)          // 弹出函数a,因为函数a将a覆盖

a();              // 弹出10

a=3; 

alert(a)          // 弹出3

a=6;             

a();              //报错,提示a不是函数

修改之后的代码就是js声明提前的实际执行顺序。

用const、let声明的变量,不会被提到作用域最前面,所以提前用了就会报错

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,776评论 0 6
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,952评论 0 3
  • 深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大...
    DaveWeiYong阅读 716评论 0 1
  • 第一章 前端三大语言:HTML(专门编写网页内容)、CSS(编写网页样式)、JS(专门编写网页交互行为) 能简写尽...
    fastwe阅读 1,224评论 0 0
  • 继承 一、混入式继承 二、原型继承 利用原型中的成员可以被和其相关的对象共享这一特性,可以实现继承,这种实现继承的...
    magic_pill阅读 1,143评论 0 3

友情链接更多精彩内容