본문 바로가기

JavaScript8

module.exports JS 프로그램을 짜다보면 하나의 파일에 코드를 다 쓰는게 아니라 기능별로 구분을 하게되는경우가 필요해집니다. 몇천줄이 넘는 코드를 한 파일에 다 써버리면 생산성이 떨어지는건 당연한거겠죠? 이럴때 module.exports라는 문법을 사용해서 여러 파일(모듈)들을 만들고 최종적으로는 한 파일에서 모든 모듈을 불러와 실행하게됩니다. npm에 설치한 모듈들의 코드들또한 module.exports를 사용하는모습을 볼수있습니다. 또 module.exports에는 숫자,문자열,객체,배열,함수등등 사실상 변수에 들어가는거라면 뭐든지 넣어서 다른코드에서 쓸수가 있는데 예시를 보여드릴게요 // a.js const data = "Hello World"; module.exports = data; // b.js const rece.. 2020. 8. 27.
ES6 화살표함수 1.화살표함수는 함수이름이 없는 익명함수 (x, y) => x + y; // 선언됐지만 이름이 없어 사용할법이 없다 const add = (x, y) => x + y; // 이렇게 익명함수는 변수에 할당할수있다 console.log(add(1, 3)); // 4 setTimeout(() => { console.log('arrow function'); // 또는 이렇게 함수를 인자로 넣어줘야할때 주로 화살표 함수를 사용한다 }, 0); 익명함수는 이런식으로 사용할수있습니다. 그리고 같은 함수라도 여러가지 방법으로 쓸수있는데 let mul1 = (a, b) => { return a * b; }; let mul2 = (a, b) => (a * b); let mul3 = (a, b) => a * b; conso.. 2020. 8. 9.
ES6 const,let 비구조화할당 템플릿문자열 1. 변수 선언자let,const 먼저 let을 설명하려고하는데요, 이제 ES6부터는 거의 var을 안씁니다. 아래는 var의 스코프와 let의 스코프를 비교하는 코드인데요, { var a = 3; } console.log(a); //3 { let b = 3; } console.log(b); //ReferenceError: b is not defined 이렇게 var은 함수스코프를 가지고, let은 블록 스코프를 가지기 때문에 {} 밖에서 변수를 출력할때 var a는 출력이 되고 let b는 사라졌기때문에 출력이 안되는걸 알수있습니다. 다른 언어에서 변수를 선언할때랑 완전히 같아요 const 또한 let과 같은 블록 스코프를 가지지만 상수라는 이름 그대로 값이 한번 할당되면 절대로 다시 재할당할수없습니다.. 2020. 8. 8.
NodeJS의 장단점과 쓰이는곳들 노드는 기본적으로 싱글스레드 논블록킹으로 돌아가게됩니다. 그렇기 때문에 싱글스레드 논블록킹으로 실행되는 노드 서버 또한 이런 장점을 가지고있습니다. (하지만 이벤트 루프가 노드의 핵심이라고 할수있는데, 이벤트 루프는 제가 설명할정도로 잘 알지 못하기 때문에 여기를 눌러서 봐주셨으면 감사하겠습니다 죄송합니다) 1. 멀티스레드보다 컴퓨터 자원을 더 적게 사용합니다 2. 입력/출력 작업이 많은 서버에서 사용하기 좋습니다 3. 싱글스레드이기 때문에 멀티스레드 프로그래밍보다 난이도가 쉽습니다 4. 거의 모든 프레임워크가 자스인 프론트(리액트,뷰,앵귤러)와 언어가 같습니다 5. 이름부터 Js가 들어가는 JavaScript Object Notation, Json을 다루기가 쉽습니다 하지만 마찬가지로 싱글스레드이기 때.. 2020. 8. 7.