题目一
var getName = function() {
console.log(4);
};
function getName() {
console.log(5);
}
getName(); //4
//相当于
function getName() { // 函数声明的提升大于变量声明的提升
console.log(5);
}
var getName;
getName = function() { // 函数提升不会被变量提升覆盖,会被变量赋值覆盖
console.log(4);
};
getName(); // 4
题目二
etName(); //5
var getName = function() {
console.log(4);
};
function getName() {
console.log(5);
}
// 相当于:
function getName() {
console.log(5);
}
var getName;
getName(); // 5//不会被变量覆盖
getName = function() {
console.log(4);
};
题目三
// var a = 1;
// function fn(a) {
// /* 参数a重新定义了函数内的a 函数内部的a无法改变全局变量a的值 */
// /* var a = 1 */
// console.log(a);/* 1 */
// a = 2
// console.log(a);/* 2 */
// }
// fn(a);
// console.log(a);/* 1 */
// var a=1
// function fn(){
// console.log(a)/* undefined 如果函数内未定义a 就是全局变量的值 */
// var a = 2;
// }
// fn()
// var a = 1;
// function fn() {
// console.log(a);/* undefined */
// var a = 2;
// console.log(a);/* 2 */
// }
// fn()
// console.log(a);/* 1 */
// var a = 1
// function fn() {
// console.log(a);/* 1 */
// a = 2
// console.log(a);/* 2 */
// }
// fn()
// console.log(a);/* 2 */