Javascript

    빽틱 `

    왜 씀? 빽틱 (`)를 사용하면 문자열에 자바스크립트 코드를 적절하게 사용할 수 있다. ` `로 문자열을 감싼 후에 그 안에 ${ }를 넣어 자바스크립트 코드를 감싸서 사용할 수 있다. 기존에 아래와 같이 문자열을 사용했다면 let a = 4; console.log('a는 ' + a + '입니다') //a는 4입니다. 빽틱과 ${ }를 적절하게 사용해서 간단하게 표현할 수 있다. let a = 4; console.log(`a는 ${a}입니다`) //a는 4입니다. 또한, 기존에 줄바꿈 문자인 \n을 사용하지 않고 빽틱 안에서 엔터를 쳐서 간단하게 사용할 수 있다. let a = 4; let b = 5; console.log('a는 ' + a + '\n' + 'b는 ' + b) console.log(`a는..

    Scope, =, 삼항연산자

    Scope ? 우리가 어떤 변수를 선언했을 때, 그 변수를 사용할 수 있는 유효범위를 Scope라고 부른다. var: 함수 단위 let: block 단위(변수: let으로 선언한 변수는 값이 변할 수 있다.) const: block 단위(상수: 한번 선언한 값은 바꿀 수 없다.) block이란 중괄호 안에 든 내용을 의미한다. function scope(){ const a = 0; let b = 0; var c = 0; if(a === 0){ const a = 1; let b = 1; var c = 1; console.log(a, b, c); // 1, 1, 1 } // let과 const는 if문 안쪽 내용이 바깥 내용에 영향을 끼치지 않음! // var는 함수 단위라서 if문 밖에서 선언한 값이 변함..

    async/await

    async/await 패턴은 es8에서 도입되었는데 es6에서 표준화된 Promise 패턴으로도 불편함이 있었고 이 불편함을 해소하기 위해서 async/await 패턴이 도입되었다. 따라서 반드시 Promise 패턴을 알고 있어야 한다. async/await에서 사용되는 몇가지 규칙이 있다. await 는 반드시 async와 같이 사용되어야 한다. await 뒤에는 반드시 Promise 객체가 와야 한다. await는 Promise 객체의 비동기 작업이 끝날때까지 동기방식처럼 blocking 되어서 기다렸다가 작업이 끝나면 그 결과를 리턴한다. async를 앞에 붙인 함수는 resolved 된 Promise를 리턴하므로 만일 결과를 받아서 사용할려면 .then()으로 결과를 받아서 처리할 수 있다. as..

    비동기 패턴 - 콜백, Promise

    비동기 패턴 - 콜백, Promise

    setTimeout 만약 아래 코드를 실행하면 결과가 어떻게 될까? A-B-C 순으로 출력이 될까 아니면 A-C-B순으로 출력이 될까? console.log("A"); setTimeout(function () { console.log("B"); }, 0); console.log("C"); 만약 자바스크립트가 멀티쓰레드라면 실행할 때마다 A-B-C로 출력되거나 A-C-B로 다르게 출력이 될 것이다. 메인쓰레드 외에 setTimeout이라는 부분을 별도의 쓰레드가 담당하게 되어서 두개의 쓰레드가 경합하면 메인쓰레드가 C를 출력할지 B를 출력할지 CPU가 다르게 할당할 것이기 때문이다. 그러나, 자바스크립트는 싱글쓰레드 언어이다. 따라서 setTimeout 부분을 별도의 쓰레드로 할당하지 않고 나중에 실행하기..