
변수 - hoisting, tdz, scopevar는 한번 선언된 변수를 다시 선언할 수 있다.let은 재선언이 불가능하다.var는 선언하기 전에 사용할 수 있다.why? var로 선언한 변수는 실제로는 이동하지 않지만 최상위로 끌어올려진 것처럼 동작(호이스팅 Hois

생성자 함수객체를 생성하는 역할을 하는 함수를 생성자 함수라고 한다.예시

Object - methods / Computed property 1. Computed property(계산된 프로퍼티) 객체를 선언하는 순간에도 변수를 활용하여 프로퍼티를 할당할 수 있다. 식 자체를 넣는 것도 가능하다. 예시 2. Object - method

심볼(Symbol)심볼은 유일한 식별자이다.심볼을 객체의 key로 사용하기즉 심볼은 특정 객체에 원본 데이터를 건드리지 않고 속성을 추가할 수 있다.하나의 심볼만 보장받을 수 있다. 없으면 만들고, 있으면 가져오기 때문이다.Symbol 함수는 매번 다른 Symbol 값

숫자(Number)와 수학(Math)ceil과 floor 둘다 소수점 숫자에 상관없이 올리거나 내리고 round는 5보다 작으면 내리고 크면 올린다.원하는 자릿수에서 반올림하여 표현할 수 있다.정말 유용한 메소드이지만 한가지 주의할 점이 있다.toFixed는 문자열로

String'' (작은따옴표)는 html 코드를 작성하는데 용이하다.html 코드에 class와 같은 부분에 "" (큰따옴표)로 된 내용이 주로 들어가기 때문 "" (큰따옴표)는 영어 문장을 작성하는데 좋다.영어 문법상 '' (작은따옴표)가 자주 쓰이기 때문 벡

Arraypush() : 뒤에 삽입pop() : 뒤에 삭제unshift() : 앞에 삽입shift() : 앞에 삭제특정 요소 삭제 : n부터 m개특정 요소 삭제 후 추가, 세 번째 인자로 추가할 요소를 넣는다.arr.splice(n, 0, x)와 같이 두 번째 인자에

arr.sort() / arr.reduce()배열 재정렬, 배열 자체가 변경된다.주의 할 점으로 자바스크립트는 배열안에 있는 숫자들은 유니코드 문자로 취급하기 때문에 아래와 같은 문제가 생긴다.정확한 비교를 하기 위해 로직을 담은 함수를 인수로 넣자.배열의 요소들을 순

구조 분해 할당(Destructuring assignment)구조 분해 할당 구문은 배열이나 객체의 속성을 분해하여 그 값을 변수에 담을 수 있게 하는 표현식이다. 해당하는 값이 없을 경우 undefined가 할당되며 오류를 방지하기 위해 기본값을 설정할 수 있다.

https://velog.io/@100-100/javascript-구조-분해-할당!\[](https://velog.velcdn.com/images/100-100/post/fd5c77e7-4012-48c2-9192-7c00b795b24d/image.pn

클로저(Closure) 클로저란? 함수와 함수 렉시컬 환경의 조합. 함수가 생성될 당시의 외부 변수를 기억하고 생성된 이후에도 계속 접근 할 수 있다. add1과 add5 함수가 생성되면서 서로 다른 환경을 갖고 변수x를 기억하고있어 함수가 정상적으로 실행된다.(a

setTimeout / setInterval setTimeout 일정 시간이 지난 후 함수를 실행한다. 함수에 전달할 인수가 필요하다면 시간 뒤에 적어주면 된다. setTimeout은 TIME ID를 반환하는데 이것을 이용하면 cleatTimeout 함수를 통해

call / apply / bindcall메소드는 모든 함수에서 사용할 수 있으며 this를 특정값으로 지정할 수 있다.함수를 호출할 때 call을 사용하고 this로 사용할 객체를 넘기면 해당 함수가 주어진 객체의 메소드인것 처럼 사용할 수 있다.apply는 함수

상속과 프로토타입객체에는 자신이 프로퍼티를 가지고 있는지 확인하는 hasOwnProperty라는 함수가 있다.그렇다면 hasOwnProperty 함수는 어디에서 오는 걸까?바로 여기에 있다.이를 프로토타입이라고 한다.객체에서 프로퍼티를 읽는데 존재한다면 탐색을 멈추고

ClassClass는 ES6에 추가된 객체를 생성하기 위한 템플릿이다.생성자 함수와 Class를 비교해보자.Class에는 constructor가 있으며 이는 객체를 만들어주는 메소드다.또한 showName과 같이 Class내에 정의한 메소드는 생성된 객체의 protot

Promise Promise란 ? Promise는 자바스크립트 비동기 처리에 사용되는 객체다. 여기서 자바스크립트의 비동기 처리란 특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성을 의미한다. new Promise로 생성

async / awaitasync와 await을 사용하면 Promise에 then 메소드를 체인형식으로 호출하는 것보다 가독성이 좋아진다.함수 앞에 async 키워드를 붙혀주면 항상 Promise를 반환한다. await 키워드는 async 함수 내부에서만 사용할 수 있

GeneratorGenerator는 함수의 실행을 중간에 멈췄다가 재개할 수 있는 기능이다.function 옆에 \*을 넣어서 만들고 내부에 yield 키워드를 사용하며 이를 이용해 함수의 실행을 멈춘다.Generator 함수를 실행하면 Generator객체가 반환되며

import & exportscript 태그에 type="module"로 설정하면 해당 파일은 모듈로서 동작하게된다.JavaScript 코드를 담고 있는 파일이다.다만 일반적인 JavaScript 파일과는 다른 차이점을 가지고 있다.import 혹은 export 구문을

화살표 함수화살표 함수는 표기법이 간단하기 때문에 익명 함수를 다른 함수의 인수로 넘길 때 주로 사용한다.단지 표기법에서만 다른 것이 아니고, 몇가지 미묘한 차이점이 있다. 매개변수 목록 괄호 생략하기화살표 함수가 정확히 하나의 매개변수만 사용하는 경우, 묶는 괄호

참조형 & 기본형String, Number, boolean은 모두 기본형(Primitive type) 이다.자바스크립트의 기본형 값의 특징은 변경할 수 없다는 점이다.객체를 다룰 때는 다르다.자바스크립트 객체는 참조형(Reference Type) 값이며 이는 변수에