티스토리 뷰
계산기 코드는 맨 하단에 있음.
함수 선언문 형태로 작성
함수 표현식으로 작성했을 때 차이점
module에 대해서도 하나의 application을 만들기 때문에 module에 대한 개념도 익힌다.
//함수 선언문
function testFunc01() {
console.log("Test Function!");
}
testFunc01(); //호출하며 node를 통해서 호출.
//===========================
//함수 표현식
// 변수 선언 함수리터럴
let testFunc02 = function () {
console.log("Test Function2");
};
testFunc02();
//===========================
//new Function() 객체 생성자
//문자열 혹은 파라미터로 정의해야 함
함수 선언문 형태를 많이 씀.
//사용자로부터 KEY BOARD 입력을 받아야 한다.
//외부 모듈을 가져와서 키보드 입력을 받는다.
const readLine = require("readline-sync"); //이거를 설치할 때 npm 도구를 이용해서 설치한다, yarn도 가능
//npm install readline-sync
function showPrompt() {
console.clear();
const testStr = readLine.question("Enter test message : ");
console.log(testStr);
}
showPrompt();
// node Calculator.js
// Enter test messgage에 Test Message! 입력 하면 바로 찍힘
//const readLine = require("readline-sync");
import { question } from "readline-sync";
function showPrompt() {
console.clear();
//const testStr = readLine.question("Enter test message : ");
const testStr = question("Enter test message : ");
console.log(testStr);
}
showPrompt();
//파일 확장자를 .js가 아니라 .mjs로 바꾼다.
실행할때 이런 식으로 option을 줘야함
isNumber validation 함수 구현
//const readLine = require("readline-sync");
import { question } from "readline-sync";
function showPrompt() {
console.clear();
const firstNumber = question("Enter first number: ");
//const operation = question("Enter operation: ");
//const secondNumber = question("Enter second number: ");
//console에 오는 데이터들은 문자열로 올 것이므로 숫자로 바꿔줘야 함
//내장함수를 이용해서 받은 데이터들을 숫자/문자 등으로 변경한다.
//변경 후 계산 진행
//숫자로 받는지 검증이 필요함
console.log(isNumber(firstNumber));
}
function isNumber(number) {
//number 파라미터가 전달인자
return !isNaN(parseInt(number)); //전달인자로 받은 넘버값을 숫자로 바꿈.
//그리고 숫자값이면 true 숫자가 아닌 값은 false가 오는 isNumber 함수 기능함
}
showPrompt();
isOperation validation 함수 구현
//const readLine = require("readline-sync");
import { question } from "readline-sync";
function showPrompt() {
console.clear();
const firstNumber = question("Enter first number: ");
const operation = question("Enter operation: ");
const secondNumber = question("Enter second number: ");
const validation =
isNumber(firstNumber) && isOperation(operation) && isNumber(secondNumber);
if (validation) {
console.log(" Calculate~~~~ ");
} else {
console.log(" Invalid Input !!! ");
}
}
function isNumber(number) {
return !isNaN(parseInt(number));
}
function isOperation(operation) {
// 제어문 switch 혹은 if 문을 통해 검사 가능
// 문자열로 처리
let operations = "+-*/";
return operations.indexOf(operation) !== -1; //operation을 파라미터로 넣음. 배열
//이 문자열에서 index를 찾습니다.
//+기호에 대한 index를 찾아서 +라면 0번째 index. 나누기 기호면 3번째 index.
//사칙연산 외의 무언가가 오면 -1이 됨. -1과 같지 않냐고 묻는거기 때문에 false가 나올 것임.
}
showPrompt();
다시 실행하고 싶으면 while문으로 묶거나 탈출옵션을 두고 showPrompt을 다시 호출하는 방법이 있다.
계산기 실습
import { question } from "readline-sync";
function showPrompt() {
console.clear();
const firstNumber = question("Enter first number: ");
const operation = question("Enter operation: ");
const secondNumber = question("Enter second number: ");
const validation =
isNumber(firstNumber) && isOperation(operation) && isNumber(secondNumber);
if (validation) {
let result = calculate(parseInt(firstNumber), operation, parseInt(secondNumber));
console.log(`Result : ${result}`); //자주 사용되는 기법~!
} else {
console.log(" Invalid Input !!! ");
}
}
function isNumber(number) {
return !isNaN(parseInt(number));
}
function isOperation(operation) {
let operations = "+-*/";
return operations.indexOf(operation) !== -1;
}
//파라미터 3개
function calculate(firstNumber, operation, secondNumber){
switch(operation){
case '+': return firstNumber + secondNumber;
case '-': return firstNumber - secondNumber;
case '*': return firstNumber * secondNumber;
case '/': return firstNumber / secondNumber;
}
}
showPrompt();
강의링크 (1) :
https://www.youtube.com/watch?list=PLOSNUO27qFbug6LMeH5yNXfQqVqWlUARc&v=Pk5WTfjAJHo&feature=youtu.be
강의링크 (2) :
https://www.youtube.com/watch?list=PLOSNUO27qFbug6LMeH5yNXfQqVqWlUARc&v=phw7hquSggg&feature=youtu.be
'JavaScript' 카테고리의 다른 글
export와 import 기본 (0) | 2022.04.12 |
---|---|
Array (0) | 2022.04.11 |
Functions (0) | 2022.04.11 |
Data Types, Operators(데이터 타입과 연산자) (0) | 2022.04.11 |
JavaScript for Beginner (0) | 2022.04.11 |
댓글