Uncaught TypeError: 常量变量赋值错误排查求助
问题排查:Uncaught TypeError: Assignment to constant variable
你的错误根源是对const声明的变量进行重新赋值,同时代码里还有几处小笔误,逐一修正即可:
1. 常量赋值错误(直接触发当前报错)
在getDisplayNumber方法中,你用const声明了integerDigits,但后续尝试给它重新赋值为空字符串,而const变量不允许修改:
const integerDigits = parseFloat(stringNumber.split('.')[0]) // ... if (isNaN(integerDigits)) { integerDigits = '' // 错误:const变量无法重新赋值 }
修正:将const改为let,允许变量被修改:
let integerDigits = parseFloat(stringNumber.split('.')[0]) if (isNaN(integerDigits)) { integerDigits = '' }
2. Delete方法的两处笔误
delete方法存在两个低级错误:
- 错误地给类方法
this.chooseOperation赋值,应该操作的是this.currentOperand slice的参数分隔符误用了点号,正确应为逗号
delete() { this.chooseOperation = this.currentOperand.toString().slice(0. -1) // 两处错误 }
修正:
delete() { this.currentOperand = this.currentOperand.toString().slice(0, -1) }
3. Compute方法的拼写错误
JS是大小写敏感的,isNan应为isNaN:
if(isNaN(prev) || isNan(current)) return // 错误:isNan → isNaN
修正:
if(isNaN(prev) || isNaN(current)) return
以上都是细节笔误,修正后代码即可正常运行,不存在重大逻辑故障。
内容的提问来源于stack exchange,提问作者Warwick
相关产品推荐
相关产品推荐

