JavaScript变量预解析和函数预解析实例分析
导读:本文共902字符,通常情况下阅读需要3分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 1.大家思考下 这个结果会是多少呢?console.log(num);varnum=10;结果是 undefined2.这个输出结果又会是多少呢?fun();varfun=function(){console.log(22);}显然这个结果报错了。那究竟为什么会这样执行呢?1、我们js引擎运行js分为两步: 预解析 代码执行预解析 js引擎会把js里面... ...
目录
(为您整理了一些要点),点击可以直达。1.大家思考下 这个结果会是多少呢?
结果是 undefined
2.这个输出结果又会是多少呢?
显然这个结果报错了。
那究竟为什么会这样执行呢?
1、我们js引擎运行js分为两步: 预解析 代码执行
预解析 js引擎会把js里面所有的var还有function提升到当前作用域的最前面
代码执行 按照代码书写的顺序从上往下执行
2、预解析分为 变量预解析(变量提升)和 函数预解析(函数提升)
变量提升 就是把所有的变量声明提升到当前作用域最前面 不提升赋值操作
函数提升 就是把所有函数声明提升到当前作用域的最前面 不调用函数
那我们第一个问题就相当于执行了以下代码
第二个问题相当于执行了以下代码
这下我们就可以看到 声明了一个变量 但是没有给值,接着又调用了fun()这个函数,但是没有这个函数,肯定会报错。
所以函数表达式调用必须要写在函数表达式声明的下面才可以。
JavaScript变量预解析和函数预解析实例分析的详细内容,希望对您有所帮助,信息来源于网络。