1、 求和y和z的值是多少?
Var x=1;
Var y=0;
Var z=0;
Var s=0;
Function add(n){n=n+1;}
y =add(x); undefined
Function add(n){n=n+3;}
z =add(x);undefined
S=y+z; NaN
注:add函数没有返回值,所以是undefined
<script type="text/javascript">
var x = 1;
var y = 0;
var z = 0;
function add(n){return n=n+1;} y = add(x); y=4
function add(n){return n=n+3;} z = add(x); z=4
s=y+z; s=4+4=8
< /script>
此时add函数是有返回值的,直接通过function申明的函数,后面的定义会影响到之前的引用。
例如: function a() { alert(2) };
a();//alert的内容是3;因为后面又重新定义了函数,后面的定义会影响之前的引用, function a() { alert(3) };a();//alert的内容是3;
如果是通过var来申明的函数会是什么情况呢?我们看看: <script type="text/javascript">
var x = function(){alert(0)}; x();// 打印内容是0;
var x=function(){alert(1)}; x();//打印内容是1; x();//打印内容是1;
< /script>
通过var申明的函数,后面的定义不会影响之前函数的引用;