Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么IE会给出这个错误:对象不';不支持属性或方法isNaN_Javascript_Jquery - Fatal编程技术网

Javascript 为什么IE会给出这个错误:对象不';不支持属性或方法isNaN

Javascript 为什么IE会给出这个错误:对象不';不支持属性或方法isNaN,javascript,jquery,Javascript,Jquery,我在IE 11中发现了这个错误: 对象不支持属性或方法isNaN JavaScript jQuery(document).ready(function($) { var $total = $('#total'), $value = $('.value'); $firstName = $('#firstname'); $lastName = $('#lastname'); $tour = $('#tour'); $pledge = $('#pledg

我在IE 11中发现了这个错误:

对象不支持属性或方法isNaN

JavaScript

jQuery(document).ready(function($) {
    var $total = $('#total'),
    $value = $('.value');
    $firstName = $('#firstname');
    $lastName = $('#lastname');
    $tour = $('#tour');
    $pledge = $('#pledge');
    $currency = $('#currency');
    $distance = $('#distance');
    $riders = $('#riders');

    $(':input').on('input change', function(e) {
        var total = 1;
        $value.each(function(index, elem) {
            if(!Number.isNaN(parseFloat(this.value)))
                total = total * parseFloat(this.value);
        });
        $total.val(total/10);

        $('#pledgefirstname').text($firstName.val());
        $('#pledgelastname').text($lastName.val());
        $('#pledgetour').text($tour.val());
        $('#pledgepledge').text($pledge.val());
        $('#pledgecurrency').text($currency.val());
        $('#pledgecurrency2').text($currency.val());
        $('#pledgecurrency3').text($currency.val());
        $('#pledgecurrency4').text($currency.val());
        $('#pledgetotal').text($total.val());
        $('#pledgetotal2').text($total.val());
        $('#pledgedistance').text($distance.val());
        $('#pledgeriders').text($riders.val());
    });
});
这是一项实验技术,是Harmony(EcmaScript 6)的一部分 提议。因为这项技术的规格还没有稳定下来,, 检查在各种浏览器中的使用情况。还请注意 实验技术的语法和行为是一个主题 在未来版本的浏览器中随规范的更改而更改

大多数浏览器(包括IE11)仍然不支持它

您应该改用标准方法:

if (isNaN( parseFloat(this.value) )) { ... }

如果您正在使用ES6和Babel,请在React中使用。您可以这样做:

//旧浏览器的pollyfills
//core js v2.x.x:
导入“core js/es6/number”;
//core js v3.x.x:
导入“核心js/es/编号”;
在package.json中为

"dependencies": {
    "core-js": "^2.5.5",
  }

我有一个类似的问题,除了编译、捆绑和缩小后的React。为了解决这个问题,我重新定义了
编号。isNaN

if (!Number.isNaN) {
  Object.defineProperty(Number, 'isNaN', {
    value: function(value) {     
      return value !== value;
    }
  });
}

只需使用一个独立的
isNaN
方法,而不用从
Number
对象调用它:
if(isNaN(…)
。好吧,不要混淆
窗口.isNaN
Number.isNaN()。我认为后者是EcmaScript 6的一个特性。好的,谢谢。这到底是什么意思?看看为什么:是下一个JavaScript规范的一个非常新且仍处于实验阶段的功能。它在IE中根本不受支持。你可能把它与全局函数混淆了,全局函数在所有浏览器中都有支持。事实上,在IE的任何版本中都不支持。这似乎是隐含的。你能帮我实现你的解决方案吗?我不知道如何翻译它。花括号里是什么?@square\u eyes:Yikes,伙计,我想你真的想太多了。好的,修好了,谢谢@cookiemonster的聊天。我把枪掉了!,愚蠢的me.should应该是
if(!Number.isNaN){
而不是
if(!Number.isNaN){