Microsoft JScript toUpperCase returns 类型未知

Microsoft JScript toUpperCase returns type unknown

我让这个 JScript 文件执行自然比较排序,但不知何故这个问题不断出现:

通过获取文件夹中的所有文件创建数组,然后我想对它进行排序。对于某些(随机?)文件,第一次比较有效,第二次变量的类型在 .toUpperCase().

之后变为 unknown

我的代码:

function naturalCompare(a, b) {
    var ax = [], bx = [];

    a.toString();
    b.toString();

    a = a + "";
    b = b + "";

    a = a.toUpperCase();
    b = b.toUpperCase();


    a.replace(/(\d+)|(\D+)/g, function(_, , ) { ax.push([ || Infinity,  || ""]) });
    b.replace(/(\d+)|(\D+)/g, function(_, , ) { bx.push([ || Infinity,  || ""]) });

    while(ax.length && bx.length) {
        var an = ax.shift();
        var bn = bx.shift();
        var nn = (an[0] - bn[0]) || an[1].localeCompare(bn[1]);
        if(nn) return nn;
    }
    return ax.length - bx.length;
}

我复制了这个(不知道在哪里了)。正常情况下是可以的,最近才出现这种情况

是的,unknown,不是 undefined

所以,似乎有一些文件名,它只发生在这个特定的文件夹中,其中包含名称来自 html 的文件,这可能是问题所在。

总之,谢谢大家的帮助,那几个文件我就放着吧