<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>JavaScript变量作用域的各种啃</title>
</head>
<script>
//JavaScript只有两种作用域,全局作用域和局部作用域,没有块作用域(也就是双括号{}内部
var vout="outer";
(function fun(){
var v="hello";
console.info(v);
})();
//console.info(v);//v is undefiend
//JavaScript变量提升问题,解决此问题最好将要定义的变量都放在函数最前面,进行集中定义
(function(){
console.info(vout);//输出 undefined, 因为本函数后面定义的变量vout 将会放在本函数内的最前面,相当于在函数内前方加入了(var vout;但没有指定值)
var vout="word";
})();
//内外部变量同名的各种啃
console.info("内外部变量同名的各种啃");
console.info(vout);//输出outer
function fun1(){
var vout="inner";//如果在变量前写var关键字,则为定义内部变量
console.info(vout);//输出 inner
}
fun1();
console.info(vout);//输出outer
function fun2(){
vout="inner";//如果没有在变量前写var关键字,则默认访问外部变量,即此处定义的vout还是指向外部的vout
console.info(vout);//输出 inner
}
fun2();
console.info(vout);//输出inner,因为在fun2 函数里改了
//javascript 变量的查找过程
console.info("javascript 变量的查找过");
var color="red";
function outer(){
//var color="blue";
function getcolor(){
return color;
}
console.info(getcolor());//JavaScript会从最内层函数开始查找,直到window,直到找到相应变量 返回
}
outer();
</script>
<body>
</body>
</html>
javascript基础之二(变量作用域的各种啃)
最新推荐文章于 2022-10-24 21:44:54 发布