美文网首页
JS声明提前

JS声明提前

作者: 取个昵称有那么难吗 | 来源:发表于2019-11-22 17:56 被阅读0次

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

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声明的变量,不会被提到作用域最前面,所以提前用了就会报错

相关文章

  • JS声明提前

    直接上一段代码解释下声明提前 alert(a) // 弹出函数a a(); // 弹出10...

  • JS作用域

    JS模块化 JS中变量声明问题 JS为弱类型,编译型语言声明提前在JS中,声明语句会被提前到文件首 静态类型为强类...

  • Day06 JavaScript

    1. JS 输出方式 2.JS变量声明 3.JS声明提前 4.JS基本数据类型 5.JS数组 6.JS对象 7.J...

  • 2016-11-23

    NAN表示一种非数据。 声明提前:JS在运行的时候会把所有变量提前到顶部,只是把声明提前,不会把赋值提前。 开关:...

  • 2016.11.23.JS

    NaN:表示非数字 声明提前:js在运行的时候,会把所有的变量提前到顶部,但只会把声明提前,不会把赋值提前 函数才...

  • JS预处理与声明提前

    针对ES5。预处理阶段涉及到(var关键字声明的,包括函数表达式)变量和(以function关键字声明的)函数的声...

  • 奇怪的js 变量声明提前

    最近学习到js的变量声明提前部分,然后搜索看看网上的文章,然后发现了一个非常好玩的东东 根据声明提前的规则结果是 ...

  • #hello,JS:03-02 声明提前和立即执行函数

    一、声明提前 1、变量声明提前——变量提升 可参照这里的描述: #hello,JS:01数据类型、运算符、运算符优...

  • 声明提前

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

  • 声明提前

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

网友评论

      本文标题:JS声明提前

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