티스토리 뷰
구조
// npm install realine-sync 모듈 다운로드
1. 검증 파일 (Validator.mjs)
function isNumber(number) {
return !isNaN(parseInt(number));
}
function isOperation(operation) {
let operations = "+-*/=";
return operations.indexOf(operation) !== -1;
}
//Calculator에서 사용할 수 있도록 export한다.
//외부로 내보내고자 하는 함수 혹은 객체에 export를 붙이면 외부에서 사용 가능
//export 여러 개 가능
export default {
isNumber,
isOperation,
};
2. 계산 파일 (Calculator.mjs)
//중괄호가 없으면 이름을 지어줘야하는데 export default시..
import validator from "./Validator.mjs";
let inputDatas = []; // 배열에 저장
function appendData(inputData) {
// 키보드 내용마다 inpuData로 받아서 배열에 넣음
inputDatas.push(inputData);
}
function getInputDatasMessage() {
let message = "";
// map함수를 통해 배열 하나를 꺼내
inputDatas.map((value) => (message += value));
return message;
}
function calculate() {
let result = parseInt(inputDatas[0]);
let currentNumber = 0;
let currentOperation = "";
let prevOperation = "";
inputDatas.forEach((value) => {
if (validator.isNumber(parseInt(value))) {
currentNumber = parseInt(value);
} else if (validator.isOperation(value)) {
currentOperation = value;
}
switch (prevOperation) {
case "+":
result += currentNumber;
break;
case "-":
result -= currentNumber;
break;
case "*":
result *= currentNumber;
break;
case "/":
result /= currentNumber;
break;
default:
break;
}
prevOperation = currentOperation;
currentOperation = ""; //초기화
});
return result;
}
export default {
appendData,
getInputDatasMessage,
calculate,
};
3. 호출 파일 (CalculatorAssist.mjs)
//Calculator 애들을 호출
//배열을 이용한 계산기능을 사용할 것이므로 import
import { question } from "readline-sync";
// export default라 중괄호 없음
import calculator from "./Calculator.mjs";
//반복문을 통한 무한반복
function showPrompt() {
while (true) {
let inputData = question("Enter number or operation: ");
if (inputData !== "=") {
calculator.appendData(inputData);
console.log(calculator.getInputDatasMessage()); //함수호출
} else {
console.log(
calculator.getInputDatasMessage() + "=" + calculator.calculate()
);
break;
}
}
}
showPrompt();
//node --experimental-json-modules src/CalculatorAssist.mjs
결과값
강의링크: https://www.youtube.com/watch?v=wiJGoCo6Bpw&list=PLOSNUO27qFbug6LMeH5yNXfQqVqWlUARc&index=7
강의링크: https://www.youtube.com/watch?v=WnQ7G6Bn6M8&list=PLOSNUO27qFbug6LMeH5yNXfQqVqWlUARc&index=8
'JavaScript' 카테고리의 다른 글
export와 import 기본 (0) | 2022.04.12 |
---|---|
Array (0) | 2022.04.11 |
함수 활용 실습 - 간단한 계산기 application 만들기 (0) | 2022.04.11 |
Functions (0) | 2022.04.11 |
Data Types, Operators(데이터 타입과 연산자) (0) | 2022.04.11 |
댓글