티스토리 뷰

계산기 코드는 맨 하단에 있음.

 

함수 선언문 형태로 작성

함수 표현식으로 작성했을 때 차이점

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
댓글