JS运行moment日期处理代码报Uncaught TypeError: a is undefined错误
问题记录
编写如下业务代码时出现运行报错:
let dateDataStartDate = moment().startOf('week')._d let dateDataEndDate = moment().endOf('week')._d if (datesData.start != undefined) { dateDataStartDate = datesData.start dateDataEndDate = datesData.end } axios.get('/api/classes/' + props.myVal, { params: { dateDataStartDate: dateDataStartDate, dateDataEndDate: dateDataEndDate, admin: true } })
运行时抛出的错误信息为:
Uncaught TypeError: a is undefined
控制台最初将报错位置定位到这行代码:
let dateDataEndDate = moment().endOf('week')._d
根因分析
控制台的报错定位存在偏差,实际错误来自后续的条件判断逻辑:变量datesData本身为undefined,代码未校验datesData是否存在就直接访问其.start属性,触发了类型错误。
报错信息里的a是moment.js压缩打包后的内部变量名,导致错误提示和行定位出现误导,实际和moment的周起止计算逻辑无关。
修复方式
调整条件判断逻辑,优先校验datesData本身是否存在,再访问其内部属性:
if (datesData != undefined) {
修改后代码可正常运行。
内容的提问来源于stack exchange,提问作者devdude19289
相关产品推荐
相关产品推荐

