变量的提升
// 如果一个变量声明以后,会把变量的声明提升到整个作用域的最前面,但是赋值还是原来的位置
// console.log(a)
// var a=10;
// 等价于
// var a;
// console.log(a);
// a=10;
// 如果一个变量没有声明直接赋值,作用域就是赋值以后的区域可以使用
// console.log(a)
// a=10
// 通过function 函数名(){}定义的函数,会把整个函数提升到作用域的最前面
// add()
// function add(){
// console.log(111)
// }
// add不是一个函数
// add()
// var add=function(){
// console.log(111)
// }
// 等价于
// var add;
// add();
// add=function(){
// }
// 全局变量和局部变量同时生效,优先局部变量
// var a=10;
// function add(){
// console.log(a);
// var a=100;
// }
// add()
// function add(){
// var a=100;
// }
// 考查的是变量作用域问题 a is not defined
// console.log(a)
// 如果一个变量没有声明直接赋值,作用域就是赋值以后的区域可以使用
// function add(){
// a=100;
// }
// add()
// console.log(a)
// js中只有函数的作用域,声明变量的作用域,是向上寻找距离该变量最近的开始的函数的{变量的作用范围就是{}以内
function add(){
var a=100;
}
add();
console.log(a);