一道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