Javascript 从JS计算器中的两个输入获取值

Javascript 从JS计算器中的两个输入获取值,javascript,Javascript,为类创建一个vanilla JS计算器,我得到了要在显示中显示的数字和运算符值。当我的运算符被单击时,它们不应该出现在显示中,但会向适当的运算符触发事件侦听器,并在单击=时显示答案,因此在计算运算符的逻辑时遇到问题。首先,我只关注添加1+2=3 <div id="calculator-container"> <div> <input id='calculator-display' type="text&q

为类创建一个vanilla JS计算器,我得到了要在显示中显示的数字和运算符值。当我的运算符被单击时,它们不应该出现在显示中,但会向适当的运算符触发事件侦听器,并在单击=时显示答案,因此在计算运算符的逻辑时遇到问题。首先,我只关注添加1+2=3

<div id="calculator-container">   
    <div>
         <input id='calculator-display' type="text" value='' placeholder='0' disabled />
    </div>        
        <div id="calculator-buttons">
            <input type="button" class='number-button' id='one' value='1' />
            <input type="button" class='number-button' id='two' value='2' />
            <input type="button" class='number-button' id='three' value='3' />
            <input type="button" class='number-button'  id='four' value='4' />
            <input type="button" class='number-button'  id='five' value='5' />
            <input type="button" class='number-button'  id='six' value='6' />
            <input type="button" class='number-button'  id='seven' value='7' />
            <input type="button" class='number-button'  id='eight' value='8' />
            <input type="button" class='number-button'  id='nine' value='9' />
            <input type="button" class='number-button'  id='zero' value='0' />
            <input type="button" class='number-button'  id='decimal' value='.' />
            <input type="button" class='operator-button'  id='times' value='&times' />
            <input type="button" class='operator-button'  id='divide' value='&divide' />
            <input type="button" class='operator-button'  id='add' value='+' />
            <input type="button" class='operator-button'  id='minus' value='-' />
            <input type="button" class='operator-button'  id='equal' value='=' />
            <input type="button" class='operator-button'  id='clear' value='AC' />
        </div>
</div>

    <script src="app.js"></script>
</body>


const display = document.getElementById('calculator-display');
let firstNumber = null;
let secondNumber = null;
let operand = null;

function numberButtonClicked() {
    document.querySelectorAll('.number-button').forEach(item => {
        item.addEventListener('click', (e) => {
            display.value += e.target.value;
        })
    })
};

function allClear() {
    document.getElementById('clear').addEventListener('click', function() {
        if(!display.value == '') {
            display.value = '';
        }
    });
}


function operatorClicked() {
    const operator = document.querySelectorAll('.operator-button');
    operator.forEach(item => {
        item.addEventListener('click', (e) => {
            display.value = e.target.value;
        })
    })
}


operatorClicked();
allClear();
numberButtonClicked();

const display=document.getElementById('calculator-display');
设firstNumber=null;
设secondNumber=null;
让操作数=null;
函数numberButtonClicked(){
document.querySelectorAll(“.number按钮”).forEach(项=>{
item.addEventListener('单击',(e)=>{
display.value+=e.target.value;
})
})
};
函数allClear(){
document.getElementById('clear').addEventListener('click',function(){
如果(!display.value==''){
display.value='';
}
});
}
函数运算符clicked(){
const operator=document.queryselectoral(“.operator按钮”);
operator.forEach(项=>{
item.addEventListener('单击',(e)=>{
display.value=e.target.value;
})
})
}
运算符单击();
allClear();
numberButtonClicked();

计算器的问题在这个网站上反复出现,请看:
!display.value=''
相当于
true
,因为对
display.value
求反产生的布尔值在抽象上等于空字符串<代码>=是“not(抽象地)equals”操作符,
==
是严格的“不等于”选项,而
if(display.value)
可能是您打算执行的操作的较短版本。