Javascript grunt.js声称浏览器不支持NaN';T

Javascript grunt.js声称浏览器不支持NaN';T,javascript,node.js,gruntjs,qunit,Javascript,Node.js,Gruntjs,Qunit,我正在设置grunt.js来运行qunit测试,对于某些测试grunt会失败。失败的测试(4个测试中有3个失败)都是我添加一个整数,其中一个字符串隐式地导致字符串连接。如果我在浏览器、浏览器控制台和使用代码的网页中手动运行测试,那么这种方法可以很好地工作 这里发生了什么,我应该如何应对? 咕噜声输出 Running "qunit:all" (qunit) task Testing html_client/tests.html F.......... >> CommonTests -

我正在设置grunt.js来运行qunit测试,对于某些测试grunt会失败。失败的测试(4个测试中有3个失败)都是我添加一个整数,其中一个字符串隐式地导致字符串连接。如果我在浏览器、浏览器控制台和使用代码的网页中手动运行测试,那么这种方法可以很好地工作

这里发生了什么,我应该如何应对?

咕噜声输出

Running "qunit:all" (qunit) task
Testing html_client/tests.html F..........
>> CommonTests - Test getDateAsString
>> Message: null
>> Actual: "NaN-NaN-NaN"
>> Expected: "1980-02-13"
>> at file:...

>> CommonTests - Test getDateAsString
>> Message: null
>> Actual: "NaN-NaN-NaN"
>> Expected: "1980-12-03"
>> at file:...

>> CommonTests - Test getDateAsString
>> Message: null
>> Actual: "NaN-NaN-NaN"
>> Expected: "1980-02-03"
>> at file:...
测试代码

    QUnit.test("Test getDateAsString", function() {
        QUnit.equal( Common.getDateAsString(new Date('1980-2-13')), '1980-02-13' );
        QUnit.equal( Common.getDateAsString(new Date('1980-12-3')), '1980-12-03' );
        QUnit.equal( Common.getDateAsString(new Date('1980-12-13')), '1980-12-13' );
        QUnit.equal( Common.getDateAsString(new Date('1980-2-3')), '1980-02-03' );
    });
    var getDateAsString = function(date) {
        var dd = date.getDate();
        var mm = date.getMonth() + 1; // January is 0!
        var yyyy = date.getFullYear();

        return yyyy + '-' + ((mm < 10) ? '0' + mm : mm) + '-' + ((dd < 10) ? '0' + dd : dd);
    };
代码

    QUnit.test("Test getDateAsString", function() {
        QUnit.equal( Common.getDateAsString(new Date('1980-2-13')), '1980-02-13' );
        QUnit.equal( Common.getDateAsString(new Date('1980-12-3')), '1980-12-03' );
        QUnit.equal( Common.getDateAsString(new Date('1980-12-13')), '1980-12-13' );
        QUnit.equal( Common.getDateAsString(new Date('1980-2-3')), '1980-02-03' );
    });
    var getDateAsString = function(date) {
        var dd = date.getDate();
        var mm = date.getMonth() + 1; // January is 0!
        var yyyy = date.getFullYear();

        return yyyy + '-' + ((mm < 10) ? '0' + mm : mm) + '-' + ((dd < 10) ? '0' + dd : dd);
    };
并非每个浏览器都支持
新日期('1980-2-23')
语法。如果希望在每个浏览器中都获得一致的结果,应该使用库,例如

IE8:


你说得对,但我的目标只是支持最新的(移动浏览器)。它也不能解释为什么四个测试用例中只有三个失败了,这四个都应该失败。对吗?@MdaG语法加上适当的填充,例如,
newdate('1980-12-13')
应该是passes@MdaG这里的语法必须精确地为
yyyy-mm-dd
,月份和日期都是两位数。最新的移动浏览器也无法与最新的桌面浏览器相比。它们缺少你在桌面上可以找到的功能。好的,谢谢,那么这个错误将被定位到我的测试中。真正的代码不以同样的方式创建日期。我只是想确定日期语法是否有填充。