开发者社区> 问答> 正文

变量提升

变量提升

展开
收起
茶什i 2019-11-21 18:56:09 1128 0
1 条回答
写回答
取消 提交回答
  • 变量提升 A、js 代码执行的过程

    1 变量提升
    2 代码从上到下依次执行
    var 关键字和 function 关键字声明的变量会进行变量提升

    B、变量提升发生的环境:发生在代码所处的当前作用域。

    变量提升
    1 var 关键字进行的变量提升,会把变量提前声明,但是不会提前赋值 。
    2 function 关键字对变量进行变量提升,既会把变量提前声明,又会把变量提前赋值,也就是把整个函数体提升到代码的顶部
    3 有一些代码是不会执行的但是仍旧会发生变量提升,规则适用于 1,2
    3.1 return 之后的代码依旧会发生变量提升,规则适用于 1,2
    3.2 代码报错之后的代码依旧会发生变量提升,规则适用于 1,2
    3.3 break 之后的代码依旧会发生变量提升,规则适用于 1,2
    4 有一些代码是不会执行但是仍旧会发生变量提升,但是规则要发生变化
    4.1 if 判断语句 if 判断语句中 var 关键字以及 function 关键字声明的变量只会发生提前声明,不会发生提前赋值,也就是不会吧函数体整体提升到当前作用域顶部。规则跟 1,2 不适用
    4.2 switch case 规则跟 1,2 不适用
    4.3 do while 规则跟 1,2 不适用
    4.4 try catch catch 中声明的变量只会发生提前声明,不会发生提前赋值。
    Ps:在条件判断语句和 try catch 中的声明的变量不管是否能够执行,都只会发生提前 声明,不会发生提前赋值。

    2019-11-21 18:58:46
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载