一道90%都会答错的面试题

138 阅读1分钟

一道90%都会答错的面试题

话不多说,上题。

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

怎么样,答出来了吗?

把你的见解写在评论区吧。


// "use strict";
var a = 1; 
console.log(a, window.a); // 1  1
{
    console.log(a, window.a); // f a(){}  1
    a = 2; 
    console.log(a, window.a); // 2  1
    function a() {}
    console.log(a, window.a); // 2  2
    a = 3;
    console.log(a, window.a); // 3  2
}
console.log(a, window.a); // 2  2
"use strict";
var a = 1; //全局声明一个变量a
console.log(a, window.a); // 1  1
{
    console.log(a, window.a); // f a(){}  1
    a = 2; //找到块级作用域中声明的函数a,并赋值为2。
    console.log(a, window.a); // 2  1
    function a() {}
    console.log(a, window.a); // 2  1
    a = 3;
    console.log(a, window.a); // 3  1
}
console.log(a, window.a); // 1  1