javascript函数'预解析'功能
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<script type="text/javascript">
var x=1,y=0,z=0;
function add(n){n=n+1;return n}
y=add(x);
function add(n){n=n+3;return n;}
z=add(x);
alert(y+'-------'+z);
//=========================
var user_name='steve';
function f1(){
alert(user_name);//output:undefined.
///原因:js函数具有预解析功能.在这个f1函数中中,已经知道有一个user_name的变量,只是在它执行第一个alert方法的时候,还没有赋值.
///并且这个函数内的变量和全局的同名,所以f1函数内部的变量优先使用.所以就变成了->undefined.
var user_name='yzk';//如果这个没有var 变量的话,那么结果分别为:steve yzk.原因:都是全局变量.第一个的赋值为steve,第二个重新赋值为yzk.
alert(user_name);
}
f1();
</script>
</body>
</html>