本站源码全部测试通过,配有前台及后台演示图,绿色安全,希望能对大家有所帮助!
  • 收藏本站
  • 网站地图
  • 发布源码
  • 首 页
  • app源码
  • 小程序源码
  • VPS/云主机
  • JS变量提升及函数提升实例解析
    时间:2020-09-04 06:29:34来源:模板之家 作者:转载大师 下载:47761 次

    box-sizibox-sizing: border-box; border: 0px; margin-top: 10px; margin-bottom: 10px; padding: 0px; -webkit-font-smoothing: antialiased; font-size: 18px; font-family: "Microsoft YaHei", Arial, Verdana, Tahoma, sans-serif; vertical-align: baseline; background: rgb(255, 255, 255); line-height: 32px; color: rgb(85, 85, 85); white-space: normal;>1在js中只有两种作用域

    a:全局作用域

    b:函数作用域

    在ES6之前,js是没有块级作用域。

    首先来解释一下什么是没有块级作用域?

    JS变量提升及函数提升实例解析

    所以此时 是可以打印输出变量a的值。

    2:什么是变量提升?

    在我们的js中,代码的执行时分两步走的,1、预解析 2、一步一步执行

    在预解析阶段:首先会在全局作用域内,js解析器会找所有的 var 、function 、参数,并提前到当前作用域的最顶上去(变量的赋值操作不会提前,还在原来的地方),此时并没有执行代码。

    然后再开始一行一行执行代码。遇到了函数调用,于是进入到函数作用域内,又开始分两步骤走,1、预解析 2、一步一步执行。以此类推。

    那么变量提升就是变量声明会被提升到作用域的最顶上去,也就是该变量不管是在作用域的哪个地方声明的,都会提升到作作用域的最顶上去。

    即变量可以在声明之前使用,值为undefined。

    JS变量提升及函数提升实例解析

    那么上面这种写法其实等价于下面这种写法:

    JS变量提升及函数提升实例解析

    看几个例子:

    JS变量提升及函数提升实例解析

    把上面的例子稍作改动:

    结果就会大不一样,

    JS变量提升及函数提升实例解析

    再看一个例子:

    JS变量提升及函数提升实例解析

    3:什么是函数提升?

    JS变量提升及函数提升实例解析

    输出的结果是:

    JS变量提升及函数提升实例解析

    注意:函数声明式,会将函数的声明和定义一起提升到作用域的最顶上去。

    如果是这种写法:函数表达式声明的函数

    JS变量提升及函数提升实例解析

    例子:

    JS变量提升及函数提升实例解析

    输出的结果是:

    JS变量提升及函数提升实例解析

    最后的总结:

    1:所有的声明都会提升到作用域的最顶上去。

    2:同一个变量只会声明一次,其他的会被忽略掉。

    3:函数声明的优先级高于变量申明的优先级,并且函数声明和函数定义的部分一起被提升。

    转载请注明来源:JS变量提升及函数提升实例解析
    本文永久链接地址:bencandy.php?fid=31&id=16840
    本文标签:

    版权声明:
    —— 本文内容由互联网用户自发贡献, 本站不拥有所有权, 不承担相关法律责任, 如果发现本站有涉嫌抄袭的内容, 欢迎发送邮件至 :
    —— 1034252225@qq.com 举报, 并提供相关证据, 一经查实, 本站将立刻删除涉嫌侵权内容。

    QQ在线客服

    服务热线

    织梦建站咨询