变量提升与函数提升

来源:互联网 发布:怎么查询公司海关数据 编辑:程序博客网 时间:2024/05/17 23:52

变量提升

var a = 5;function fafa(){    a==6;//false    a==5;//false    var a = 6;    function test(){        a == 6;//true    }    test();};fafa();

实际fafa里执行顺序是:

var a;//变量提升 a=undefineda==6;//falsea==5;//falsea = 6;test();

——————————————————————————————————

var a = 5;function fafa(){    a == 5; //true    function test(){        a == 5;//true    }    test();};fafa();

函数内未定义a,则去函数外找。

函数提升
js中创建函数有两种方式:函数声明式和函数字面量式。只有函数声明才存在函数提升!

console.log(f1);  //[Function: f1]console.log(f1());   //f1console.log(f2);   //undefined//console.log(f2());   //报错function f1() {return 'f1'}  //函数提升var f2 = function() {return 'f2'};  //函数为提升(function() {    console.log(a);   //undefined    a = 'aaa';    var a = 'bbb';    console.log(a);   //bbb})();
原创粉丝点击