<div class="calc">
<div>
<input type="number" id="input">
<button id="clear">C</button>
</div>
<div>
<button id="plus">+</button>
<button id="minus">-</button>
<button id="divide">/</button>
<button id="multiple">x</button>
</div>
<div>
<button id="answer">=</button>
<input readonly type="number" id="result">
<!-- readonly 는 읽기전용을 뜻한다. -->
</div>
<script>
</script>
</div>
<script>
const numberInput = document.querySelector('#input');
const clearButton = document.querySelector('#clear');
const plusButton = document.querySelector('#plus');
const minusButton = document.querySelector('#minus');
const divideButton = document.querySelector('#divide');
const multipleButton = document.querySelector('#multiple');
const answerButton = document.querySelector('#answer');
const resultInput = document.querySelector('#result');
let temp; //임시값
let operator; //연산자
//처음값은 정해져 있지않고 나중에 바뀌게 된다. 따라서 const가 아닌 let을 써준다.
plusButton.addEventListener('click', () => {
if(numberInput.value){
temp = numberInput.value
operator = '+'
}
});
.
.
.
.
</script>
clearButton.addEventListener('click', () => {
numberInput.value = ''
temp = null
operator = null
});
answerButton.addEventListener('click', () => {
if(operator){
if(numberInput.value){
if(operator === '+'){
resultInput.value = temp + numberInput.value
} else if(operator === '-'){
resultInput.value = temp - numberInput.value
} else if(operator === '*'){
resultInput.value = temp * numberInput.value
} else if(operator === '/'){
resultInput.value = temp / numberInput.value
}
}
}else{
if(numberInput.value){
resultInput.value = temp
}
}
});
함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동변환된다. 이런 과정을 "형 변환(type conversion)"이라고 한다. 이 외에, 전달받은 값을 의도를 갖고 원하는 타입으로 변환(명시적 변환)해 주는 경우도 형 변환이라고 할 수 있다.
1) 문자형으로 변환 : string(value)
2) 숫자형으로 변환 : Number(value)
alert( "6" / "2" ); // 3, 문자열이 숫자형으로 자동변환된 후 연산이 수행됩니다.
3) 불린형으로 변환 : Boolean(value)