编码新手和网站新手。
我正在尝试根据 YouTube 视频构建一个计算器,我一直在按照这些步骤操作,直到在 console.log 中遇到此错误:Uncaught TypeError: num.replace is not a function。
不知道还能做什么或为什么会收到此错误。这个菜鸟将不胜感激任何帮助!
我的代码如下:
function getHistory(){
return document.getElementById("history-value").innerText;
}
function printHistory(num){
document.getElementById("history-value").innerText=num;
}
function getOutput(){
return document.getElementById("output-value").innerText;
}
function printOutput(num){
if(num==""){
document.getElementById("output-value").innerText=num;
}
else{
document.getElementById("output-value").innerText=getFormattedNumber(num);
}
}
function getFormattedNumber(num){
if(num=="-"){
return "";
}
let n = Number(num);
let value = n.toLocaleString("en");
return value;
}
function reverseNumberFormat(num){
return Number(num.replace(/,/g,''));
}
let operator = document.getElementsByClassName("operator");
for(let i=0;i<operator.length;i++){
operator[i].addEventListener("click", function(){
if(this.id=="clear"){
printHistory("");
printOutput("");
}
else if(this.id=="backspace"){
let output=reverseNumberFormat(getOutput).toString();
if(output){
output= output.substr(0,output.length-1);
printOutput(output);
}
}
});
}
let number = document.getElementsByClassName("number");
for (let i=0; i< number.length;i++){
number[i].addEventListener("click", function(){
let output=reverseNumberFormat(getOutput());
if(output!=NaN){
output=output+this.id;
printOutput(output);
}
});
}
答案 0 :(得分:1)
传递的值可能不是字符串,你应该这样做
function reverseNumberFormat(num){
return Number(num.toString().replace(/,/g,''));
}
这就是错误是 TypeError 的原因