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 |