每日一题20191206

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

解析: 我们知道预解析阶段,变量声明和函数声明会提前,且变量名和函数名同名时,函数优先级高于变量,会覆盖变量,因此第一个输出的是f a(){ },继续执行,会执行a=2,再输出的时候就会输出2,不理解的同学百度一下变量提升和函数提升
答案: f a() { }, 2

你可能感兴趣的:(每日一题)