如果变量具有空值,则获取NaN

时间:2016-01-05 14:15:52

标签: javascript json ajax nan

在这里,我通过ajax和json获得记录。 如果变量有,我会得到价值。 但是,如果变量“performance”具有空值,则会显示NaN。 我希望打印数字值,而不是NaN,而不是00.00

这可能吗?如果是,那怎么样? 谢谢。

我的代码,

function emp_month_perf(){

            jQuery.ajax({
                url: "<?php echo base_url(); ?>grade_tasks/emp_monthly_performance",
                data:'',
                type:"GET",
                dataType: "json",
                success:function(data){

                    var total_month_earn = data.total_earn_point;
                    var total_month_point = data.total_point;
                    var performance;
                    var per_color;
                    //var radius = "20px";
                    //alert(total_point);
                    performance = (((total_month_earn)/(total_month_point))*100).toFixed(2);
                    if(performance>80)
                    {
                        per_color = "#33CF53";
                    }
                    else if(performance>=60 && performance<=80)
                    {
                        per_color = "#E0C533";
                    }
                    else
                    {
                        per_color = "#E12827";
                    }
                    //document.getElementById("monthperformance").style.borderRadius = radius;
                    document.getElementById("monthperformance").style.backgroundColor = per_color;
                    $('#monthperformance').html(performance);
                },
                error:function (){}
                });
                }
               setInterval(emp_month_perf, 300000);

2 个答案:

答案 0 :(得分:4)

使用OR运算符将数字设置为零。

var total_month_earn = data.total_earn_point || 0;
var total_month_point = data.total_point || 0;

但是现在你可以得到1/0这是无限的。 :)

其他选项是检查NaN,然后​​将值设置为零。

var performance = (((total_month_earn)/(total_month_point))*100);
var formatted = isNaN(performance) ? "00.00" : performance.toString(2); 

答案 1 :(得分:0)

修复如下替换

performance = (((total_month_earn)/(total_month_point))*100).toFixed(2);

使用

try {
  performance = (((total_month_earn)/(total_month_point))*100).toFixed(2);
  performance=isNaN(performance) ? "00.00" : performance;
}
catch(err) {
  performance="00.00";
}