TypeError,变量未定义

时间:2012-11-10 19:43:23

标签: javascript

我的代码显然有问题..

function match2(string,pattern){
var patternUpper = pattern.toUpperCase(); // Change pattern to uppercase
var stringUpper = string.toUpperCase(); // Change string to uppercase
    for(var i=0;i<stringUpper.length-1;i++){
        if(stringUpper.indexOf(patternUpper.charAt(i))<0)
        return false;
    }
    return true;
}

不确定为什么Firefox调试器会说“模式未定义”,因为它是在函数中定义的,对吧?

非常感谢任何帮助。

利安

编辑:它也是为字符串做这个。如果我注释掉该片段的第二行,则说“字符串未定义”。

在这里调用match2:

alert(match2("thisisatest","ahtsit"));

结果按预期工作,但问题是我认为程序中的错误会进一步下降。

2 个答案:

答案 0 :(得分:1)

"pattern"参数未定义时,无论在哪个浏览器中,都意味着调用函数时出现问题,需要检查调用堆栈,在函数内部前一步,看看会发生什么传递参数时在那里。 (顺便说一下,不要使用关键字或类名来命名变量,我的意思是名为"string"的变量)

希望它有所帮助。

干杯

答案 1 :(得分:0)

只有在未传递第二个参数或第二个参数未定义时才会发生