ES6学习笔记1:变量提升以及函数提升
来源:互联网 发布:网络歌手 金达莱花 编辑:程序博客网 时间:2024/06/07 22:09
1、概念
变量提升:变量提升即将变量声明提升到它所在作用域的最开始的部分;
函数提升:函数提升即将函数的声明会提升到它所在作用域的最开始的部分。
2、举例说明
变量提升
console.log(a);//undefinedvar a = 2;console.log(a);//2
之所以会是以上的打印结果,是由于js的变量提升,实际上上面的代码是按照以下来执行的:
var a; // 变量提升,全局作用域范围内,此时只是声明,并没有赋值console.log(a); // undefineda= 'a'; // 此时才赋值console.log(a); // 打印出2
es6里面定义变量,还有let,不存在变量提升的现象
console.log(a);//Uncaught SyntaxError: Identifier 'a' has already been declaredlet a = 2;console.log(a);//2
函数提升:
函数提升的优先级大于变量提升的优先级
首先我们需要明白函数的三种定义方式:
function func1(){};//函数字面量var func2 = function(){};var func3 = new Function();
这三种定义方式,只有第一种方式才存在函数提升的现象,即第一种
function func1();
test1();//输出结果:2test2();//Uncaught TypeError: test2 is not a functionfunction test1(){ console.log("123");}var test2 = function(){ console.log("test2");}
之所以是上述现象是因为浏览器引擎对javascript代码的处理过程
function test1(){ console.log("123");}// 函数提升,整个代码块提升到函数作用域的最顶端test1();test2();var test2 = function(){ console.log("test2");}
阅读全文
1 0
- ES6学习笔记1:变量提升以及函数提升
- 变量提升/函数提升
- JS学习笔记:变量提升
- ES6 let不存在变量提升
- 变量提升与函数提升
- 变量提升和函数提升
- 变量提升与函数提升
- javascript 变量/函数 提升
- 变量函数声明提升
- js 变量、函数提升
- 函数和变量提升
- 变量和函数提升
- 变量声明提升 Vs. 函数声明提升
- JavaScript变量提升和函数提升
- javascript中的变量提升和函数提升
- 变量声明提升和函数声明提升
- JS中的函数提升及变量提升
- 预解析 var 变量提升 函数提升
- 《Head First 设计模式》之策略模式
- 记录自己的支付集成(微信&支付宝)
- scan方法
- keepalive自启动服务报错,问题的解决
- 顺序结构小结——顺序表(柔性数组版 上)
- ES6学习笔记1:变量提升以及函数提升
- IOS 使用runtime swizzling(黑魔法的那些事)
- Ubuntu16.04+cuda8.0+cudnnV5.1 caffe SSD配置、训练及测试过程
- react路由配置
- 23switch
- 再讲*.hbm.xml中的类型映射
- C语言之简单计算器
- 对kafka的初步了解
- Linux学习笔记:grep及正则表达式