2.2.javascript--变量作用域

<!DOCTYPE HTML>

<html >

<head>

<meta charset="UTF-8">

<title>变量的作用域</title>

<script type="text/javascript">

/*

//声明同一个变量后者会覆盖前者所以输出的应该是最后一个变量值

var foo = "Hello World 1";

foo = "Hello World 2";

document.write( foo );

*/

/*

//全局作用域下的变量

var foo = "Hello World";

//window对象下的属性

foo = "Hello World";

//页面输出为true说明两者值相同

document.write( window.foo == foo );

*/

/*

//变量var foo只定义在函数func内

function func(){

//加var之后变量foo只在函数func内部生效

var foo = "Hello";

//但如果去掉var变量foo就会变成window下的对象这时就和window.foo一样了,所以将会输出true

//去掉var后的变量foo就变成了一个全局变量

//foo = "Hello";

}

func();

//页面输出为false说明两者值不相同,var foo 不等于 window.foo

document.write( window.foo == "Hello");

*/

//这是全局变量

var yourName = "阿四";

myName = "校长";

//在函数内部也可以调用全局变量

function ChangeName(){

document.write("你的名字是" + yourName + "<br/>");

document.write("我的名字是" + myName + "<br/>");

//var yourName是局部变量 myName依然是全局变量,所以输出为underfind

//下面的myName不会覆盖上面的myName,所以输出依然为校长而不是xiaozhang

var yourName = "a4";

myName = "xiaozhang"

};

//执行ChangeName函数

ChangeName();

//输出全局变量 第二个函数内部的myName将会覆盖上面的myName所以输出为xiaozhang

//yourName将会输出上面的yourName的值阿四,因为下面的函数内部的yourName只在函数内部生效

document.write(myName + "喜欢" + yourName);

</script>

</head>

<body>

</body>

</html>