***********************
//1.如果一个变量声明后,会把变量的声明提升到整个作用域的最前面,但是赋值还是原来的位置
console.log(a); //报错
var a = 10;
//等价于
var a;
console.log(a);
a = 10;
**********************
//2.如果一个变量没有声明直接赋值,作用域就是赋值以后的区域都可以使用
console.log(a); //报错
a = 10;
***********************
//3.通过function 函数名(){}定义的函数,会把整个函数提升到作用域的最前面
add(); //11
function add(){
console.log(11);
}
************************
//4.如果一个变量声明后,会把变量的声明提升到整个作用域的最前面,但是赋值还是原来的位置
add(); //add不是个函数
var add = function(){
console.log(22);
}
//等价于
var add;
add();
add = function(){
console.log(22);
}
************************
//5.全局变量和局部变量同时生效,优先局部变量
var a = 10;
function add(){
console.log(a); //undefined
var a = 100;
}
add();
*************************
//6.变量作用域问题
function add(){
var a = 100;
}
console.log(a); //undefined
*************************
//7.如果一个变量没有声明直接赋值,作用域就是**赋值以后的区域**都可以使用
function add(){
a=100;
}
add();
console.log(a); //100
*************************
//7.如果一个变量声明后,会把变量的声明提升到**整个作用域**的最前面,但是赋值还是原来的位置
function add(){
var a=100;
}
add();
console.log(a); //undefined
JavaScript变量提升
最新推荐文章于 2023-08-21 21:15:29 发布