未捕获的TypeError:无法读取未定义的属性'toLocaleString'

时间:2019-09-25 01:46:35

标签: javascript jquery

我收到此错误,该如何解决呢?我正在尝试通过 SessionParser.js https://github.com/jethroacosta08/sessionparser从本地存储中获取详细信息。我正在尝试对数据的Tuition进行LocaleString。

我得到的错误是:

Uncaught TypeError: Cannot read property 'toLocaleString' of undefined
    at paymentStd (onClick.js:12)
    at HTMLButtonElement.onclick (database.html:1)

onclick.js

    function paymentStd(i){
        var data = lp.getKey('StudentsData','Students_Information')[i];
        var data_all = lp.getKey('StudentsData','Students_Information');
        $('#full_name').text(data.FirstName+" "+data.MiddleName+" "+data.LastName);
        $('#StudentID').text(data.StudentID);



        var Tuition = data.Tuition.toLocaleString();
        console.log(Tuition);
        $('#paymentStudent').text('Php '+ Tuition+'.00');
        $('#prints').click(function(){
            window.print();
        });





    }

2 个答案:

答案 0 :(得分:0)

确保已定义data.Tuition(具有值)。只有这样,您才能使用toLocaleString方法

答案 1 :(得分:0)

最好的答案是在使用 TOLOCALESTRING 函数之前添加一个 if 条件,以便我们可以确认该函数仅在变量具有实际值时才运行。

其次还添加了可选的链接运算符。 可选链运算符 (?.) 使您能够读取位于连接对象链深处的属性值,而无需检查链中的每个引用是否有效。 Optional Chaining (?.)

这样:

let Tuition;
if (data.Tuition ! = null)
    Tuition = data.Tuition.toLocaleString?.();

我希望这肯定会奏效,如果不对我的回答发表评论,我会进一步研究。