变量的声明前置
用var
创建变量,声明会前置
console.log(a)
var a=1
等同于
var a
console.log(a)
a=1
//输出 undefined,因为变量 a 的申明前置了,没有赋值就是 undefined
如果上面没用 var
声明变量,直接使用就是会报错
console.log(x)
x=1 // Uncaught ReferenceError: x is not defined
//因为变量 x 没有声明
函数的声明前置
用function
声明函数,函数声明会前置
hello()
function hello() {
console.log('world')
}
//输出 world ,不会报错,因为 function 声明会前置
如果用函数表达式,则会报错
Hello()
var Hello = function() {
console.log('World')
}
// Uncaught TypeError: Hello is not a function
// 因为var构造函数表达式,函数的声明不会前置
// 调用一个没有声明的函数,就报错了