ELICE AI6/JavaScript

Elice) Javascript

이동탁 2022. 12. 12. 22:53

 

 

1. 자주 쓰는 자바스크립트 연산자

 

비교 연산자

  • == : 피연산자가 서로 같다
  • ! = : 피연산자가 서로 다르다
  • === : 두 피연산자가 서로 값과 타입이 모두 같다.
  • ! == : 두 피연산자가 서로 값 또는 타입이 서로 다르다.
  • <,> : 서로 크거나 작음
  • < =, > = : 서로 작거나 같음, 크거나 같음

산술 연산자

  • % : 나머지, 두 피연산자를 나눴을 때의 나머지를 반환함
  • ++ : 피연산자에 1을 더한다.
  • — : 피연산자에 1을 뺀다.
  • ** : 거듭 제곱한다.

논리 연산자

  • && : AND연산자, 둘 다 참일 경우 true
  • || : OR연산자, 둘 중 하나가 참일 경우 true

2. let과 var의 차이

 

let : let 으로 선언한 변수는 자신을 선언한 부분과 이외의 모든 부분에서도 자신의 값을 가진다. 따라서 중간에 let으로 또 다른 변수를 담아도 처음에 let으로 담은 변수가 유효하며, let으로 같은 이름이 변수를 선언해도 서로 다른 변수가 된다.

var : var 로 선언한 변수는 중간에 같은 이름의 변수를 다시 선언시 값이 가장 마지막에 선언한 변수로 변환된다.

 

! 따라서 var의 의미만 기억하고 이후에는 let을 사용하는 것이 추후 함께 작업 할 시에 꼬이지 않는다.


3. 프로퍼티와 메서드

 

프로퍼티 : 데이터를 의미하는 것 / 메서드 : 데이터를 참조하고 조작할 수 있는 동작 
var str = "HELLO WORLD?";

str.length; : 문자열 길이 프로퍼티

str.charAt(0); : 문자 H 추출 프로퍼티 (0,1,2 로 추출)

str1split(” ”) : “”안에 있는 것 기준으로 문자 나눈 후 배열 하는 프로퍼티

var korea = ["강원도","경기도","서울"];

korea.length; : 데이터 개수 프로퍼티 → 3개

korea.push(”경상도”); : 배열 뒤에 데이터 삽입

korea.unshift(”전라도”); : 배열 앞에 데이터 삽입

korea.pop(); : 배열 뒤의 데이터 제거

korea.shift(); : 배열 앞의 데이터 제거


4. readline

 

readline 모듈은 JS에 내장된 모듈로, readable 스트림에서 한 줄씩 입출력을 처리할 수 있게 도와준다.

 

모듈 불러오기

const readline = require("readline"); → require(”모듈 이름”)

—> 해당 모듈을 불러오고 readline이라는 변수에 저장한다.

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

정의한 변수를 이용해 readline 인터페이스 객체를 하나 만든다. 해당 객체를 이용해 콘솔에서 표준 입출력을 처리할 수 있게 해준다. createInterface() 메서드를 이용해 객체를 만들고, rl 변수에 저장해준다.

생성한 rl객체로 입출력과 관련된 여러 이벤트를 처리할 수 있다. 예를 들어 사용자가 콘솔에 입력을 넣는 것과 같은 이벤트가 있다. on 메서드를 이용하면 이벤트가 발생할 때 실행할 동작을 지정할 수 있다.

line 이벤트

rl.on("line", function(x) {
  console.log(x);
});

사용자가 콘솔에 입력을 할 때 발생한다. on메서드와 함께 해당 이벤트를 이용하면 사용자가 입력한 한 줄을 그대로 다시 출력할 수 있다.

close 이벤트

.on("close", function () {
});

스트림 종료를 제어하는 이벤트이며 더 이상 입력받을 것이 없을 때 rl.close()를 호출하여 발생시킨다.

정리 하여 입력받은 한 줄을 그대로 출력해주는 코드는 아래와 같다.

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.on("line", function(x) {

  rl.close();
}).on("close", function() {
  process.exit();
});

ES6의 화살표 함수를 사용하면 아래처럼 변형 가능하다.

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.on("line", (x) => {
  console.log(x);
  rl.close();
}).on('close', () => {
  process.exit();
});

! 아직 해당 코드에서는 on부분에서의 코딩만 가능하여, 이후 같은 코드를 이용하게 되면 좀 더 보강이 필요할 것 같다.


 

'ELICE AI6 > JavaScript' 카테고리의 다른 글

Elice) DOM  (0) 2022.12.24
Elice) Asynchronous와 event Loop  (0) 2022.12.23
Elice) Function declaration  (0) 2022.12.22
Elice) Execution Context  (0) 2022.12.17
Elice) Javascript 2  (1) 2022.12.15