
let과 const는 ES6부터 생긴 키워드로 변수를 선언할 때 사용한다.ES6 이전에 변수를 선언할 떄에는 var를 사용했다.var와 let은 크게 다르지 않고, 대부분의 경우에는 이 두 개를 바꿔 사용해도 크게 문제되지 않는다.var와 let의 차이점을 보면, va

위와 같은 방식으로 객체를 만드는 것을 객체 리터럴이라고 한다.비슷한 객체를 여러 개 만들어야 하는 상황에 사용하는 것이 생성자 함수이다.생성자 함수는 보통 첫 글자를 대문자로 하여 함수를 만들어 준다.User() 생성자 함수는 name과 age를 받아서 this에 넣

위 코드에 a라는 변수가 있고, user라는 객체가 있다.user 객체에 age라는 key 대신 \[a]와 같이 사용해도 된다.변수를 \[]로 묶어주면, a라는 문자열이 아니라 a 변수에 할당된 값이 들어가게 된다.이것을 computed property(계산된 프로퍼티

객체의 property key를 Object.keys()로 출력해보면 문자형으로 반환한다.property에 접근할 때에도 key를 문자형으로 접근할 수 있다.객체 property key는 문자형도 가능하지만, Symbol형으로도 가능하다.Symbol을 만들 때에는 ne

10진수를 2진수나 16진수로 바꾸는 방법toString()은 숫자를 문자로 바꿔주는 메소드이다.toString()의 ()안에 숫자를 넣어주면, 그 숫자의 진법으로 변환한다.숫자 10을 toString(2)를 통해 2진수로 변환하면 1010이 출력된다.숫자 255를 t

html 코드 같은 경우에 html 코드 안에 "(큰 따옴표)로 된 내용이 있기 때문에, '(작음 따옴표)로 감싸는게 편하다.영어로 된 문장은 "(큰 따옴표)로 감싸는게 편하다.\`(백틱)은 ${}를 이용하여 변수를 표현하거나, 표현식을 사용할 수 있다.또한, \`(백

push() : 뒤에 삽입pop() : 뒤에 삭제unshift() : 앞에 삽입shift() : 앞에 삭제arr.splice(n, m)는 n번째부터 m개를 지우는 메소드이다.arr.splice(n, m, x)는 x 자리에 추가할 요소를 적어주면 요소를 지운 자리에 추가

arr.sort()는 배열을 재정렬해준다. 배열 자체가 변경되니 주의해야 한다.arr.sort()는 인자로 정렬 로직을 담은 함수를 받는다.정렬할 때 요소룰 문자로 취급하기 때문에, 숫자를 정렬할 때 순서가 뒤죽박죽이다.a와 b를 빼서, 음수가 나올 경우에, b를 a의

구조 분해 할당 구문은 배열이나 객체의 속성을 분해해서 그 값을 변수에 담을 수 잇게 하는 표현식이다.위의 x에 1이 들어가고, y에 2가 들어간다.users라는 배열이 있고, 세 명의 이름이 있다.user1, user2. user3라는 변수를 \[]로 묶어서 선언하고

위의 함수는 name을 전달하면 name을 콘솔에 출력해준다.그리고, 인자를 하나 더 전달한다고 해서 에러가 발생하지 않고, 똑같이 첫 번째 인자를 출력해준다.Javascript에서 함수에 넘겨주는 인자의 개수에는 제한이 없다.따라서, 인자의 개수를 정해놓고 함수를 만

Javascript는 어휘적 환경을 갖는다.코드가 실행되면, 스크립트 내에서 선언한 변수(함수)들이 Lexical 환경에 올라간다.let로 선언한 변수도 Lexical 환경에 올라가긴 하지만, 초기화가 안된다. 따라서 사용을 할 수 없다.그에 비해 함수 선언문은 let

setTimeout() 함수는 일정 시간이 지난 후 함수를 실행한다.setInterval() 함수는 일정 시간 간격으로 함수를 반복한다.위 코드는 3초 후에 로그를 출력한다.setTimeout()은 두 개의 매개변수를 받는다.첫 번째는 일정시간이 지난 뒤에 실행할 함수

Javascript에서는 일반적인 방법 외에도 함수를 어디서 어떻게 호출했는지에 관계없이 this가 무엇인지 지정할 수 있다.call 메소드는 모든 함수에서 사용할 수 있으며, this를 특정값으로 지정할 수 있다.showThisName.call(henson);와 같이

hasOwnProperty()메소드는 인자로 받은 프로퍼티가 자신 객체에 있는지 알려준다.하지만 객체에 hasOwnProperty()라는 메소드를 만든 적이 없다.\_\_proto\_\_를 프로토타입이라고 하는데, 객체에서 프로퍼티를 읽으려고 하는데, 없으면 프로토타입

클래스는 ES6에 추가된 기능이다.생성자로 생성한 객체는 showName() 메소드가 객체 내부에 있다.클래스는 new를 통해서 호출했을 때, 내부에서 정의된 내용으로 객체를 생성하는 것은 생성자 함수와 동일하다.class라는 키워드로 생성할 수 있고, 내부에 cons

프로미스는 new Promise로 생성한다.프로미스는 함수를 인자로 받는데, resolve와 reject를 인자로 받는다.resolve는 성공한 경우, reject는 실패한 경우에 실행되는 함수이다.resolve와 reject와 같이 어떤 일이 완료된 이후에 실행되는

함수 앞에 async 키워드를 붙여주면, 항상 Promise를 반환한다.Promise를 반환하기 때문에, then과 catch을 사용할 수 있다.await 키워드는 async 함수 내부에서만 사용할 수 있다.await 키워드 옆에는 프로미스가 오고, 그 프로미스가 처리

Generator는 함수의 실행을 중간에 멈췄다가 재개할 수 있는 기능이다.제너레이터는 위의 코드처럼 function 옆에 \*를 붙여서 만들고, 내부에 yield 키워드를 사용한다.yield에서 함수의 실행을 멈출 수 있다.const a = fn();처럼 제너레이터

String.replaceAll()는 String.replace()와 사용법이 동일한데, String.replace()는 첫 번째 문자만 바꿔주는 반면, String.replaceAll()은 모든 문자열에 적용된다.ES2021 이전에는 문자열의 모든 문자를 변경하려면,