遇到的问题
不是说:JavaScript中使用 function 关键字定义的函数具有函数作用域或全局作用域,并不受块级作用域的限制 为什么 函数定义if else块前 调用函数 报错了
问题代码
let age = 16; // 拿 16 作为例子
// welcome(); // 报错, 没有声明 js文件是从上往下执行 为什么line2 找不到welcome方法 line6 可以正常执行
if (age < 18) {
let a = "我说let 字符串";
welcome(); // \ (运行)
// |
function welcome() { // |
alert("Hello!"); // | 函数声明在声明它的代码块内任意位置都可用
} // |
// |
welcome(); // / (运行)
} else {
function welcome() {
alert("Greetings!");
}
}
// 在这里,我们在花括号外部调用函数,我们看不到它们内部的函数声明。
welcome(); // 不报错 ,期望报错的
confirm.alert(a); // 报错了