未定义的变量和连接。JavaScript
我正在尝试使用JavaScript构建一个没有eval的计算器。我试图连接一个变量来存储数字。这是正确的做法吗?此外,每次我添加到变量时,它前面都有未定义的未定义的变量和连接。JavaScript,javascript,oop,Javascript,Oop,我正在尝试使用JavaScript构建一个没有eval的计算器。我试图连接一个变量来存储数字。这是正确的做法吗?此外,每次我添加到变量时,它前面都有未定义的 var calculator = { run: function(clicked){ num1: ""; num2: ""; numCheck: false; switch(clicked){ case "1":
var calculator = {
run: function(clicked){
num1: "";
num2: "";
numCheck: false;
switch(clicked){
case "1":
document.getElementById("dis").innerHTML += clicked;
if(this.numCheck===false){
if(this.num1==="undefined"){
this.num1 = " ";
this.num1 = this.num1+"1";
}else{
this.num1 = this.num1+"1";
}
}else{
calculator.run.num2 += "1";
};
我这样做正确吗?一些评论:
在声明中缺少此项,并且在声明中使用了错误的格式:而不是=在运行类/函数中,正确的格式应该是:
var calculator = {
run: function(clicked){
this.num1= "";
this.num2= "";
this.numCheck= false;
案例缺少中断和{like:
在函数内部,当使用属于类的属性时,应使用此属性而不是在以下对象上使用var计算器来访问这些属性:
正确的应该是
this.run.num2 += "1";
可以将其转换为一个类似于:
this.num1 = " ";
this.num1 = this.num1+"1";
比如:
这与我问的问题有什么关系?使用JavaScript构建一个计算器而不使用eval。您可以使用对象的键作为数学运算符。如果您认为它与您的问题/问题无关,请忽略它;我不是故意粗鲁,我认为我的问题不清楚。我想知道为什么我对变量执行+=1时,结果是未定义的1d/1。这看起来像字符串操作,而不是算术。我的问题是,在执行此操作时,变量将变为未定义的1,而不是1。感谢您对其余代码的帮助。为什么我需要将其定义为变量或对象中的变量?这不是给定的吗?“执行此操作时…”。这是什么意思?抱歉,何时对变量执行+=1时,它将变为未定义的1。@hudsond7 num1:;不是声明变量的有效方法,因此this.num1+=1实际上是未定义的。这包含在我上面的文章中。
this.run.num2 += "1";
this.num1 = " ";
this.num1 = this.num1+"1";
this.num1 = " 1";