
데이터 타입에는 크게 원시 데이터 타입 ,객체 데이터 타입이 있다.원시 데이터 타입: number, string, boolean, null, undefined, Symbol단일 데이터를 담는다.객체 데이터 타입: object, function, array복합 데이터를

새로운 메모리 공간에 값(Value)을 복사하는 것이다.변수에 담겨있는 값이 원시 데이터인 경우에 사용된다.주소값이 복사되는것을 말한다.변수에 담겨있는 값이 객체 데이터인 경우에 사용된다.

\+ ,- , \* , / , %, \*\* 이 있다. \+ 연산자는 숫자를 더할때 뿐만 아니라 문자열간의 연결을 도우며 숫자와 문자열이 결합될때 문자열로 변환해주는 역할을 한다.그외 나머지 연산자들은 숫자형과 문자형이 만났을 때 숫자형으로 변환시켜준다.\+(양) ,

함수란 하나의 로직을 재사용할 수 있도록 하는 것중복되는 코드를 줄임으로서 유지보수 , 코드 해석 용이 ,재사용성에 이점이 있다.함수는 입력과 출력을 이용해 유용하게 만들 수 있다.함수에서 입력은 parameter(매개변수)를 통해서 들어온다.매개변수(parameter

객체는 복합 데이터를 담은 그릇이다 .객체는 key와 value로 이루어져 있다.객체는 서로 연관된 속성(프로퍼티)과 행동(메소드)를 묶어주기위해 사용한다.중괄호 {...} 안에는 ‘키: 값’ 쌍으로 구성된 프로퍼티가 들어간다.키: 문자,숫자,문자열,symbol 값:

대부분의 객체 지향 프로그래밍 언어는 클래스 기반이지만 자바스크립트는 프로토타입을 기반으로 프로그래밍을 한다.그러나 ES6부터는 자바스크립트 또한 클래스 기반으로 해서 객체지향 프로그래밍을 할 수 있게 되었다.객체를 생성할 수 있는 템플릿이다.객체를 생성할 수 있는 템

객체는 크게 3가지로 구분할 수 있다.Built-in 객체 (내장 객체)Host 객체( 브라우저 환경- Browser APIs, 노드 환경- Node APIs)사용자 정의 객체그중 Built-in 객체에는 무엇이 있는지 알아보도록 하자.원시타입이 평소에는 원시 타입으로

배열은 연관된 데이터를 모아서 통으로 관리하기위해 사용된다.여러가지 데이터를 담을 수 있다. 그러나 보통 한가지 타입만 담는것이 일반적이다.배열 리터럴 생성자 함수Array 생성자 함수를 사용해 만들어진 arr은 Array 배열객체이다.인자로 한개가 들어오면 배열의 길

고차함수(High order Function)란 함수를 함수의 인자로 전달받거나return 값으로 함수를 return 하는 함수를 말한다.고차함수는 외부상태의 변경, 데이터의 변경을 피하고 불변성(immutability)을 지향하는 함수형 프로그래밍에 기반을 둔다.함수

날짜와 관련된 객체로 1970년 1월 1일 UTC(협정 세계시) 자정과의 시간 차를 밀리 초로 나타낸 정수 값을 담는다.UTC 기준으로 코드를 출력한 현재 날짜가 출력된다.UTC 기준으로 1970년 1월 1일 0시 0분 0초에서 milliseconds 후의 시점이 저장

String 전역 객체는 문자열(문자의 나열)의 생성자 String 객체 안에 값을 넣어 문자형으로 변환 가능객체의 인덱스 번호로 접근charAt() String 객체의 인스턴스 메소드로 특정인덱스에 위치하는 문자열 반환둘다 인덱스 번호로 접근한다는 점에서 비슷하다.

반복, 순회라는 뜻으로 js는 iteration protocol을 따른다.iteration protocol(순회 규칙)을 따르는 자료형에는 Array,String,Map,Set이 있고, 사용할 수 있는 연산자는 for..of, Spread가 있다.iterable pro

generator를 사용하기 위해서는 generator 함수의 특별한 문법 구조인 \*function을 사용해야 한다.generator를 사용하면 여러 값들을 사용자의 의도에 따라 한개씩 반환(yield)할수 있다.yield는 return가 유사하지만 사용자가 next

Spread 문법 > Spread 문법인 … 는 대상을 개별 요소로 분리한다. Spread 문법의 대상은 iterable이어야 한다. 함수의 인수로 사용하는 경우 Spread문법을 사용한 인수를 함수에 전달하면 배열이 분해되어 파라메터로 전달 배열에서 Spread

구조 분해라는 뜻으로 구조화된 배열, 객체를 Destructuring하여 개별적인 변수에 할당하는 것이다.코드 1) 배열의 요소 추출/할당 기준은 배열의 인덱스이다.코드 2)코드 1)객체의 프로퍼티 추출/할당 기준은 프로퍼티 이름이다.코드 2) 고차함수 filter

Set > 자료 구조중 하나로 데이터 집합체다. 배열과는 달리 index가 없고(순서가 없음) 요소의 중복이 불가하다. new 연산자와 함께 Set객체를 생성하고 인자에는 배열이 전달된다. Set을 만드는 방법 Set생성자 객체안에 배열 전달 빈 Set( n

Map은 key,value로 이루어진 자료구조이며 객체이다.index가 없어 순서가 없고 각각의 키들은 유일하다.Object와 구조적으로 유사하지만 사용가능한 메소드가 다르다.ex) Object는 요소를 가져오려면 객체.키 이름을 사용하면 되지만 Map은 요소를 가

Symbol은 원시타입중에 하나로 유일한 키를 생성할 때 사용한다.심볼은 객체에 속성을 추가할 때 고유한 키를 부여하여 다른 코드와 충돌하지 않도록 할 때 많이 쓰인다.따라서 캡슐화, 정보 은닉을 제공한다.Symbol() 호출은 각각 고유한 심볼을 반환하는 것이 보장된

논리 연산자는 조건문안에서 주로 사용되며 true인지 false인지 평가해야 하므로논리연산자의 피연산자들은 Boolean형으로 형변환 된다.논리 연산자는 조건문 밖에서도 사용할 수 있는데 이때 논리 연산의 결과를 결정하는 피연산자를 형 변환하지 않고 그대로 반환하는 것

에러가 발생했을때 에러를 잡아 어플리케이션이 강제종료되지 않고 catch문의 코드블록에 있는 코드가 수행되어 에러를 처리한다.try문은 실행할 코드 블록을 정의한다.catch문은 에러를 처리하기 위한 코드 블록을 정의한다.try{..} 안의 코드 실행에러가 있다면 tr

코드를 순서에 맞게 절차적으로 처리하는 것으로 특정 부분에서 시간이 오래걸리는 일을 수행하면 수행속도가 느려진다.자바스크립트 런타임 환경에는 자바스크립트 엔진이 있고 그 안에는 heap, call stack, queue, WEB APIS등 다양한 것이 존재한다.call

promise를 return하는 함수들이런 함수들을 promise의 then을 chaining하여 비동기적 처리를 할 수도 있지만async, await 키워드를 사용하면 코드가 더욱 간결해진다.비동기적 코드를 나타내는 키워드로 코드 내부를 동기적으로 사용할 수 있게 한

스코프는 식별자(변수,함수의 이름)가 유효한 범위를 나타낸다.선언된 위치에 따라 유효범위가 결정된다.스코프를 사용하면 이름충돌을 막을 수 있고 메모리를 절약할 수 있다. 코드 전체의 범위로 코드 어디에서든지 참조 가능, 전역 변수의 범위코드 블록{}내의 범위로 코드 블

호이스팅이랑 변수,함수,클래스의 선언문을 코드 상단으로 끌어 올리는 것을 말한다.js 엔진이 코드를 실행하기전 코드 전체를 한번 스캔하고 선언과 관련된 모든 것들을 상단으로 올려준다.let, const 변수는 호이스팅 되어도 변수의 선언만 올려주지 초기화는 안된다.함수

변수 키워드인 var은 ES5까지 변수를 선언하는 유일한 방법이었다.1\. 변수 키워드 없이 선언 및 할당이 가능하다.코드 📄변수를 선언한 것인지 재할당(let)한 것인지 구별하기 어렵다.2\. 변수 중복 선언이 가능하다.코드 📄의도치 않게 변수 값이 변경되면 버그

javaScript 코드가 "엄격 모드"에서 실행되어야 함을 정의한다.엄격 모드를 사용하고자 하는 부분이 'use-strict' 문구를 넣으면 된다.엄격모드를 사용하면 보안적인 관점에서 js를 더 쉽게 작성할 수 있다.엄격모드는 이전에는 허용되었던 잘못된 구문을 오류

모든 객체는 Object라는 이름을 가진 \[Prototype]을 가진다.우리가 객체를 생성한후 별도의 프로퍼티나 메소드를 만들지 않아도 가져다가 사용할 수 있는 이유는 객체 내부에 숨겨진 \[Prototype]의 프로퍼티와 메소드를 상속하기 때문이다.그러나 외부에서

클로저란 내부함수와 외부함수의 상태가 함께 묶여있다, 갇혀있다 라는 의미이며즉 내부함수가 외부함수의 렉시컬 환경(블록 정보)에 접근 할 수 있는 것을 말한다.클로저는 스코프의 특징과 유사하다.스코프의 특징으로 어떤 블록이든 내부 블록에서 외부 블록에 있는 변수를 참조할

this는 js에서 쓰는 키워드로 누가 호출했는지에 따라 할당되는 값이 다양하다.브라우저 환경일때 this는 window를 가리킨다. window는 브라우저의 전역객체를 뜻한다.브라우저 환경에서 사용할 수 있는 기본적인 메소드들이 보인다.(alert,confirm...

함수 표현식에 대한 간결한 대안으로 ES6에서 나온 함수 표현식이다.function 키워드( function() {} ) 대신 화살표(⇒) 사용하기 때문이 문법이 간결하고 가시성이 좋다.화살표함수는 prototype 이 없기 때문에 함수를 new연산자와 호출하더라도

모듈이란 애플리케이션을 구성하는 개별적 요소로서 재사용이 가능한 코드 조각을 말한다.모듈은 파일 단위로 분리되어 있다.애플리케이션이 로드되면 분리되어 있던 모듈들이 애플리케이션에 로드된다.모듈은 기능별로 분리되어 있어 개발의 효율성이 좋다.재사용성과 유지보수성을 높일