<script>
console.log(a); //输出undefined
var a = 2;
console.log(a); //输出2
foo();//输出Hello, World!
function foo() {
console.log("Hello, World!");
}
bar(); //报错:bar is not a function
var bar = function() {
console.log("Hello, World!");
}
/*
这里报错的原因是;
在代码执行之前 变量提升和函数提升
但是,函数表达式(通过赋值方式定义的函数)不会提升
所以的这里的function() {
console.log("Hello, World!");
}并没有在bar();执行之前赋值给了var bar 当代码从上到下执行的到bar()的时候就会报bar is not a function
*/
</script>
执行结果: