JavaScript难点——变量提升和函数提升(三)
2017-08-02 18:06
183 查看
前端菜鸟的成长之路
关于函数和变量同时提升的问题,代码如下
输出结果为:function a(){}
分析一:
分析二:
两种分析的争论点在 var 和 function 到底谁在最顶上,我们用分析一的结果来做个测试,如下:
一目了然了吧,可见函数提升比变量提升更靠前(函数声明比变量声明具有更高的优先级)。
正确的分析如下:
关于函数和变量同时提升的问题,代码如下
console.log(a); function a(){}; var a = 1;
输出结果为:function a(){}
分析一:
var a; function a(){}; console.log(a); a = 1;
分析二:
function a(){}; var a; console.log(a); a = 1;
两种分析的争论点在 var 和 function 到底谁在最顶上,我们用分析一的结果来做个测试,如下:
var a; console.log(typeof a); //function 假设分析一是对的,此处应该是undefined function a(){}; console.log(typeof a); //function console.log(a); //function a(){} a = 1; console.log(typeof a); //number
一目了然了吧,可见函数提升比变量提升更靠前(函数声明比变量声明具有更高的优先级)。
正确的分析如下:
function a(){}; //函数提升 名称a进入当前作用域 typeof a为function var a; //变量提升 声明的部分会被忽略 typeof a为function console.log(a); //输出 function a(){} a = 1; //a被赋值 typeof a为number
相关文章推荐
- JavaScript难点——变量提升和函数提升(一)
- JavaScript难点——变量提升和函数提升(二)
- JavaScript中的作用域与函数和变量声明的提升
- javascript的变量声明和函数声明提升
- 【JavaScript学习笔记】7:函数提升,变量提升,异常抛掷和捕获,ES6的Map和Set
- javascript 高级系列之变量提升与函数提升
- JavaScript中变量提升与函数提升经典实例分析
- javascript的变量声明和函数声明提升
- 全面了解JavaScript的函数声明与函数表达式、变量提升
- javascript的变量声明和函数声明提升
- javascript的变量声明和函数声明提升
- JavaScript 中的变量和函数提升
- JavaScript中的变量提升和函数提升
- JavaScript系列文章:变量提升和函数提升
- 详解javascript中的变量提升和函数提升
- JavaScript:变量提升和函数提升
- JavaScript 预编译(变量提升和函数提升的原理)
- javascript的变量声明和函数声明提升
- javascript中的变量提升和函数声明提升
- javascript的变量声明和函数声明提升