
var fs = require('fs');
var s = fs.readFileSync('/dev/stdin').toString().trim();
console.log(s)
Node.js로 입력값을 받기 위해선 readline 모듈 또는 fs 모듈을 쓰면 된다.
이 둘 중 fs모듈이 더 빠르므로 fs를 사용하자.
fs를 사용할 떄 컴파일 에러가 나면 그때는 readline을 사용
js에서 변수를 선언할 땐 var를 쓴다.
var fs = require('fs'); 로 fs모듈을 불러주고
var s = fs.readFileSync('/dev/stdin').toString().trim(); 로 입력을 받아준다.
fs.readFileSync('/dev/stdin')의 반환값은 Buffer 객체이다.
문자열로 바꿔주지 않으면 예상치 못한 오류가 날 수 있다.
일부 입력값의 마지막에 개행문자가 포함된 경우가 있을 수 있다.
이런 경우 split('\n')할 경우 공백문자 하나를 더 갖는 배열을 반환한다.
이를 방지하기 위해 trim()을 사용해 공백을 제거해준다.
const text = '가\n나\n다\n';
console.log(text.split('\n')); // ['가', '나', '다', '']
console.log(text.trim().split('\n')); // ['가', '나', '다']
console.log를 사용하여 입력받은 문자열을 출력해준다.


var s = require('fs').readFileSync('/dev/stdin').toString().trim().split(' ');
console.log(`a = ${s[0]}`)
console.log(`b = ${s[1]}`)
문자열을 입력받는 구문에서 a와 b는 공백을 갖고 입력받으므로 split(' ') 을 추가해준다.
s = [ '4', '5' ] 이므로 s[0]은 a값 s[1]은 b값이된다.
console.log()에서 문자열과 변수를 함께 출력하려면 백틱(`)을 사용하여
변수는 ${}로 감싸줘야한다.


var fs = require('fs');
var s = fs.readFileSync('/dev/stdin').toString().trim().split(' ');
console.log(s[0].repeat(Number(s[1])))
repeat() 함수는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환한다.
s[1] = '5' 이므로 Number()를 통해 정수로 만들어준다.


var s = require('fs').readFileSync('/dev/stdin').toString().trim();
var result = '';
for(var i of s){
if(i === i.toUpperCase()){
result += i.toLowerCase();
} else result += i.toUpperCase();
}
console.log(result);
for(var 변수 of 문자열) 로 문자열에서도 for문을 돌릴 수 있다.
여기서 == 이 아닌 === 을 사용하는데
== 은 양쪽 변수의 값만 같은지 확인하는 거고,
=== 은 데이터 타입까지 같은지 확인하는 것이다.
result라는 빈 문자열을 하나 선언해주고
만약 i가 소문자면 result에 i값을 대문자로 변환시켜 result에 추가하고
반대의 경우에는 i값을 소문자로 변환시켜 result에 추가한다.
그 후 result값을 출력해준다.

console.log("!@#$%^&*(\\'\"<>?:;")
파이썬과 마찬가지로 따옴표 앞에 (역슬래시를)붙여 출력해준다.
Day1에서 마지막은 쉬어가는 문제