前端问题

来源:互联网 发布:java 进度条实现 编辑:程序博客网 时间:2024/06/06 06:39

scoping和hosting:
问题起因:

function a(){}var a;console.log(a);function b(){}var b = 1;console.log(b);

答:同一个标识符的情况下,变量声明与函数声明都会提升;函数声明会覆盖变量声明,但不会覆盖变量赋值,即:如果声明变量的同时初始化或赋值那么变量优先级高于函数。

var foo = 1;function bar() {    if (!foo) {        var foo = 10;    }    alert(foo);}bar();
var a = 1;function b() {    a = 10;    return;    function a() {}}b();alert(a);
(function(){    console.log(typeof a);    console.log(typeof a());    function a(){        return a;        var a = 3;    }    var a = 1;})();
原创粉丝点击