为什么typeof我的变量是一个对象,而不是一个数字

Has*_*ude 2 javascript jquery

我有一个表有几个包含简单数字的单元格(IE:1.00,1000.00,10000.00).我正在尝试使用下面的"格式"功能格式化单元格内容.我已经在我的代码的不同区域成功使用了这个函数,但出于任何原因(我之所以在这里),当我尝试提供表格单元格的内容时,它不能像我预期的那样工作.

问题是我的单元格内容的类型是"对象"而不是"数字",因此它通过if语句滑动,然后将原始值返回给我.有没有办法可以强制数据为数字类型?我认为var n = new Number(cellText);会做的伎俩,然而,typeof作为对象返回.困惑.

在globalize.js中:

Globalize.format = function( value, format, cultureSelector ) {
    culture = this.findClosestCulture( cultureSelector );
    if ( value instanceof Date ) {
        value = formatDate( value, format, culture );
    }
    else if ( typeof value === "number" ) {
        value = formatNumber( value, format, culture );
    }
    return value;
};
Run Code Online (Sandbox Code Playgroud)

在我的页面中:

$(document).ready(function () {
    $('td[globalize="true"]').each(function () {
        var $this = $(this);
        var cellText = $this.text();
        if (cellText != null) {
            var n = new Number(cellText);
            var v = Globalize.formatNumber(n, _gloNum[0]);
            $this.text(v);
        }
    })
});
Run Code Online (Sandbox Code Playgroud)

Sar*_*raz 5

问题是我的单元格内容的类型是"对象"而不是"数字"

当你这样做时:

new Number
Run Code Online (Sandbox Code Playgroud)

您正在创建Number对象的实例,这就是它为您提供对象而不是数字的原因.

有没有办法可以强制数据为数字类型?

var n = +(cellText);
Run Code Online (Sandbox Code Playgroud)

要么

var n = Number(cellText);
Run Code Online (Sandbox Code Playgroud)