变量作用域
1、var声明的全局变量
作用范围全局
<script>
var name = "zhangsan";
function demo(){
console.log("函数内输出全局变量1"+name);
name = "lisi";
console.log("函数内输出全局变量2"+name);
}
console.log("函数外输出全局变量1"+name);
demo();
console.log("函数外输出全局变量2"+name);
</script>
输出结果:
2、在函数内用var声明的局部变量
<script>
function demo(){
var uname = "zhangsan";
console.log("函数内输出局部变量"+uname);
}
console.log("函数外输出局部变量1"+uname);
demo();
console.log("函数外输出局部变量2"+uname);
</script>
输出结果:
函数外是不能使用函数内定义的局部变量,局部变量在函数声明的时候创建,在函数结束时销毁
3、隐式全局变量
即不使用var声明的变量,在函数外也能获取到
<script>
function demo(){
uname = "zhangsan";
console.log("函数内输出局部变量"+uname);
}
demo();
console.log("函数外输出局部变量2"+uname);
</script>
输出结果:
4、隐式全局变量与全局变量的区别
<script>
uname = "zhangsan";
function demo(){
console.log("函数内输出隐式全局变量"+uname);
}
demo();
delete uname;
console.log("函数外输出隐式全局变量"+uname);
</script>
输出结果:
隐式全局变量可以用delete方法删除
全局变量
<script>
var uname = "zhangsan";
function demo(){
console.log("函数内输出隐式全局变量"+uname);
}
demo();
delete uname;
console.log("函数外输出隐式全局变量"+uname);
</script>
输出结果:
用var声明的全局变量不能用delete方法删除