Javascript 如何防止未赋值变量显示未定义?

Javascript 如何防止未赋值变量显示未定义?,javascript,html,function,dom,undefined,Javascript,Html,Function,Dom,Undefined,我有一个变量let number和我在按钮上有一个eventlistener,当按下按钮时,按钮的值将显示出来 let numbers; function btnClick(event){ numbers += this.value display.value = numbers } 当我按下示例7时,它将显示如下undefined7。我能做些什么来摆脱未定义的?因为您没有初始化数字,它不仅最初是未定义的,而且没有与之关联的类型。稍后当您使用+=this.value时,按钮的值(它是一个

我有一个变量
let number
和我在按钮上有一个eventlistener,当按下按钮时,按钮的值将显示出来

let numbers;
function btnClick(event){


numbers += this.value
display.value = numbers

}

当我按下示例7时,它将显示如下
undefined7
。我能做些什么来摆脱
未定义的

因为您没有初始化
数字
,它不仅最初是
未定义的
,而且没有与之关联的类型。稍后当您使用
+=this.value
时,按钮的
(它是一个字符串)使用,并且由于当其中一个操作数是字符串时,
+
运算符执行字符串串联,因此可以将
未定义的
数字
的原始值与按钮的值进行串联

要解决此问题,您应该将
数字
初始化为某个起始值,并且该值应该是一个隐式数字,以便在发生
+=
时,将执行数字相加,而不是字符串串联。值
0
是有意义的,因为它不会偏离数学:

document.querySelector(“[type='button']”)。addEventListener(“单击”,b单击);
const display=document.querySelector(“[readonly]”);
设数字=0;
函数btnClick(){
//前缀+隐式地将字符串(this.value)转换为数字
数字+=+this.value
display.value=数字;
}

因为您没有初始化
数字
,所以它不仅最初未定义,而且没有与之关联的类型。稍后当您使用
+=this.value
时,按钮的
(它是一个字符串)使用,并且由于当其中一个操作数是字符串时,
+
运算符执行字符串串联,因此可以将
未定义的
数字
的原始值与按钮的值进行串联

要解决此问题,您应该将
数字
初始化为某个起始值,并且该值应该是一个隐式数字,以便在发生
+=
时,将执行数字相加,而不是字符串串联。值
0
是有意义的,因为它不会偏离数学:

document.querySelector(“[type='button']”)。addEventListener(“单击”,b单击);
const display=document.querySelector(“[readonly]”);
设数字=0;
函数btnClick(){
//前缀+隐式地将字符串(this.value)转换为数字
数字+=+this.value
display.value=数字;
}

您可以使用三元运算符分配数字,而不是添加未定义的数字

let numbers;
function btnClick(){
   numbers = numbers === undefined ? this.value: numbers += this.value;
   display.value = numbers;
}

可以使用三元运算符指定数字,而不是添加未定义的数字

let numbers;
function btnClick(){
   numbers = numbers === undefined ? this.value: numbers += this.value;
   display.value = numbers;
}

数字
一个初始值。零或空字符串,我不确定您需要什么。另外,如果您想进行加法而不是串联,请将输入值转换为一个数字。@user12137152如果
btnClick
是一个事件侦听器,
this
将与
event.currentTarget
相同。请给
numbers
一个初始值。零或空字符串,我不确定您需要什么。另外,如果您想进行加法而不是串联,请将输入值转换为一个数字。@user12137152如果
btnClick
是一个事件侦听器,
将与
event.currentTarget
相同。