这个需求太蹩脚,为了可爱的40分
冒险试一试吧
不喜勿喷
function abc(){
        try{
            return typeof t1;
        }catch(e){
            return "undefined1";
        }
    };
    try{alert(abc(xxx1));}catch(e){alert(abc(undefined));}

解决方案 »

  1.   

    参数的传递都是实际存在的,你连变量都没有声明,在浏览器下直接会报错的 is not defined  注意 与undefined的区别window.onload=function()
    {

    var kk1;//参数传递首先是声明过的实际变量,里面的值可能是undefined
    alert(abc(kk1));//弹出undefined,当然你可以在abc中判断t1的类型来做特殊处理
    }
    function abc(t1){
    return typeof t1;
    }
      

  2.   

    定个空的 var不就好了。。
      

  3.   

    abc()你直接这样 代表那个参数是未定义
      

  4.   

    问题是我传递给abc(t1)的参数不是固定的, 是动态生成一个变量传递给它,
    这样就有可能传递给它一个不存在的变量,
      

  5.   


    问题是我传递给abc(t1)的参数不是固定的, 是动态生成一个变量传递给它,
    这样就有可能传递给它一个不存在的变量,
      

  6.   


    你演示一下怎么传递一个不存在的变量。。你是不是说有可能会出现调用abc没有参数的情况啊?
    比如abc()这样的调用?
      

  7.   


    你演示一下怎么传递一个不存在的变量。。你是不是说有可能会出现调用abc没有参数的情况啊?
    比如abc()这样的调用?

    没有 参数的时候是可以正常返回undefined.
    比如:<script type="text/javascript">
    function abc(t1){
    var m;
    try{
      m= typeof(t1);
    }catch(e){
     m= "undefined";
    }
    if(m=="undefined") alert("变量没定义");
    }
    </script>
    使用如下:
     <a href="#" onClick="abc(k)">我点</a>   
      

  8.   


    你是说用 arguments? 效果还是一样的
      

  9.   

    你为什么要这么写abc(k)?
    你的意思是点击的时候有可能k存在,有可能k还未定义?
      

  10.   

    你为什么要这么写abc(k)?
    你的意思是点击的时候有可能k存在,有可能k还未定义?
    是的, k可能存在也可能不存在,就是要在函数里面判断k是否存在。 但是javascript好像在函数参数这里就会出现问题而会程序不再执行。
      

  11.   

    你为什么要这么写abc(k)?
    你的意思是点击的时候有可能k存在,有可能k还未定义?
    是的, k可能存在也可能不存在,就是要在函数里面判断k是否存在。 但是javascript好像在函数参数这里就会出现问题而会程序不再执行。

    如果k是个全局变量,也就是window的一个属性,可以这么写
     <a href="#" onClick="abc(window.k)">我点</a>   
      

  12.   

    你为什么要这么写abc(k)?
    你的意思是点击的时候有可能k存在,有可能k还未定义?
    是的, k可能存在也可能不存在,就是要在函数里面判断k是否存在。 但是javascript好像在函数参数这里就会出现问题而会程序不再执行。

    这样好了(只能用于检验全部变量)<script type="text/javascript">
    var j=123;
    function abc(t1){
    if(t1 in window)
    alert(t1+"变量已经存在。值是"+window[t1]);
    else
    alert(t1+"变量没定义");
    }
    </script>
    <a href="#" onClick="abc('k')">kkkk</a>   
    <a href="#" onClick="abc('j')">jjjj</a>   
      

  13.   

    未定义的变量是无法进行传递使用的,函数的参数如果有形参,就算你不传,也算是定义了,因此用typeof是可以的。
      

  14.   

    所谓的未定义变量只是抽象意义上来说的   LZ 你为啥要纠结在这个地方。。
    你完全可以定义一个全局或者局部变量  专门来操作这个“未定义变量”     比如var 未定义的变量 ;
      

  15.   


    问题是我传递给abc(t1)的参数不是固定的, 是动态生成一个变量传递给它,
    这样就有可能传递给它一个不存在的变量,有这种情况,但是一般传的时候,变量在那时已经可以定义了。
      

  16.   

    如果楼主只是不要浏览器报错
    可以写成
    window.xxx
    这样只是查询window的一个属性