<a id="A" onmouseOver="mouse()">bb</a>
 <a id="A" onmouseOut="mous(1)">bv</a><script type="text/javascript"> 
function mouse(){ 
var x="5";
mous(x);
}function mous(b,a){ //这里为什么就取得到在mouse里面定义的5 在 mous(1)里面的1 却没显示 显示结果为什么为空 点击 bv的时候 却是NaN 这样 mous 如何获取mouse里面的变量x 同时又可以取得 mous(1)里面的1?
alert(b+a); } 
</script>

解决方案 »

  1.   

    http://blog.csdn.net/zyl_lyr1019/article/details/8156058
    参考一下之前看书写的一些东西吧加性运算符
    如果有一个操作数是NaN,则结果为NaN
    关键是查看一下数字,字符串这样的在未定义时,会被变成什么。
    上面的文章中看有没有,没有就自己总结一下吧。
    希望对你这个问题有帮助。
      

  2.   

    因为你5是字符串,1是整型,整型和undefined拼串应该就是NAN.
      

  3.   

    这里为什么就取得到在mouse里面定义的5 在 mous(1)里面的1 却没显示 显示结果为什么为空 点击 bv的时候 却是NaN
    因为你触发mouse时候定义了x="5",在mouse中调用mous("5",undefind),取得的当然是"5",和1无关
    1只有在你鼠标离开bv时候才取得,1是整型,你只传递了一个参数,这时mous(1,undefind),1+undefind是NaN,所以弹出的是NaN这样 mous 如何获取mouse里面的变量x 同时又可以取得 mous(1)里面的1?
    想这样可以用全局变量,在mouse里面给x赋值,在bv里调用alert(b+x),注意你这里的5是字符串,做加法的话是字符串操作<script>
    var x;
    function mouse(){ 
    x="5";
    mous(x);

    function mous(b,a){ 
    a=x;
    alert(b+a); } </script>
      

  4.   


    <script type="text/javascript"> 
    var x,y;
    </script>
    <a id="A" onmouseOver="mouse()">bb</a>
    <a id="A" onmouseOut="mous(1)">bv</a>
     
    <script type="text/javascript"> 
    function mouse(){ 
        x=5;
        if(y!=null)mous();
    }
     
    function mous(a){ 
        y=a;
        alert(x+y)

    </script>
      

  5.   

    你在两个地方调用mous(a,b)时都只传了一个参数进来,所以只有a被定义,b为undefind,加起来等于NaN不奇怪.
      

  6.   

    mous("5",undefind)   执行是什么?