一、变量的作用域:
变量起作用的范围,变量在啥地方能用。那么啥地方就是它的作用域。
二、变量作用域分为:局部变量和全局变量。
1、局部变量:
//就是定义在函数内部的变量(内部变量),局部变量起作用的范围是函数内部。//局部变量就是私有的变量
2、全局变量:
//就是定义在函数外部的变量(外部变量),//全局变量起作用的范围是当前文件中的所有函数。
//全局变量就是所有函数共享的变量
三、代码示例
1、局部变量
function testf1(){
var age = 100;//定义了一个局部变量age;age只能在函数testf1内部使用,其它函数不能使用
console.log("testf1:age="+age);
console.log("testf1:name="+name1);//出错:name1 is not defined;
}
function testf2(){
var name1 = "张三疯";//定义了一个局部变量name1;name1只能在函数testf2内部使用,其它函数不能使用
console.log("testf2:age="+age);//出错:
console.log("testf2:name="+name1);
}
function testf(){
console.log("testf:age="+age);//出错
console.log("testf:name="+name1);//出错:
testf1();
//testf2();
}
2、全局变量
var age = 250;//定义一个全局变量age,赋值为250;
function testf(){
testf1();
testf2();
console.log("testf:age="+age);//251
}
function testf1(){
console.log("testf1:age="+age); //250
}
function testf2(){
age = 251;
console.log("testf2:age="+age);//251
}
3、全局变量和局部变量重名:
就近原则:当前全局变量和局部变量重名时,在函数内部使用的是局部变量var age=250;
function testf(){
var age = 10;//声明,并赋值;
console.log("testf:age="+age);//age是局部变量,因为testf函数内部定义了age。10;
testf1();
}
function testf1(){
console.log("testf1:age="+age);age是全部变量,因为testf1函数内部没有定义age。250;
}
-----------------------------------测试代码----------------------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="button" value=" 测试 " onclick ="testf()" />
</body>
</html>
<script type="text/javascript" src="js/tools.js"></script>
<script type="text/javascript">
//一、变量的作用域:变量起作用的范围,变量在啥地方能用。那么啥地方就是它的作用域。
//二、变量作用域分为:局部变量和全局变量。
//局部变量:
//就是定义在函数内部的变量(内部变量),局部变量起作用的范围是函数内部。
//局部变量就是私有的变量
//全局变量:
//就是定义在函数外部的变量(外部变量),
//全局变量起作用的范围是当前文件中的所有函数。
//全局变量就是所有函数共享的变量
//三、代码示例
//1、局部变量
/*
function testf1(){
var age = 100;//定义了一个局部变量age;age只能在函数testf1内部使用,其它函数不能使用
console.log("testf1:age="+age);
console.log("testf1:name="+name1);//出错:name1 is not defined;
}
function testf2(){
var name1 = "张三疯";//定义了一个局部变量name1;name1只能在函数testf2内部使用,其它函数不能使用
console.log("testf2:age="+age);//出错:
console.log("testf2:name="+name1);
}
function testf(){
console.log("testf:age="+age);//出错
console.log("testf:name="+name1);//出错:
testf1();
//testf2();
}
*/
//2、全局变量:
/*
var age = 250;//定义一个全局变量age,赋值为250;
function testf(){
testf1();
testf2();
console.log("testf:age="+age);//251
}
function testf1(){
console.log("testf1:age="+age); //250
}
function testf2(){
age = 251;
console.log("testf2:age="+age);//251
}
*/
//3、全局变量和局部变量重名:
//就近原则:在函数内部使用的就是局部变量
var age=250;
function testf(){
var age = 10;//声明,并赋值;
console.log("testf:age="+age);//age是局部变量,因为testf函数内部定义了age。10;
testf1();
}
function testf1(){
console.log("testf1:age="+age);age是全部变量,因为testf1函数内部没有定义age。250;
}
</script>