📍시간 복잡도란? > 시간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석하는 방법 (알고리즘이 얼마나 빠르게 수행되는가) 일반적으로 알고리즘 성능을 나타내는 척도 중 하나로, 보통 성능(performance)은 실행 시간(time)과 메모리(mem

: 알고리즘 문제에서는 적절한(약속된) 입출력 양식이 주어진다.1\. 데이터를 입력 받거나 생성하는 것이다.2\. 이후에 적절한 알고리즘을 사용하여 도출된 정답을 정확한 형식으로 출력한다. 일반적인 알고리즘 문제를 풀 때, 표준 출력으로 console.log()를 이용

1.1 프로그래밍이란? > 컴퓨터에게 실행을 요구하는 커뮤니케이션 > 커뮤니케이션 = 문제(요구사항)에 대한 명확한 이해 + 적절한 문제 해결 방안 정의 명확한 이해 = 문제(요구사항)의 복잡함을 단순하게 분해(decomposition) 문제 해결 방안 정의 = 정

1995년 웹 브라우저 시장의 거장 넷스케이프 커뮤니케이션즈에서 개발된 경량 프로그래밍 언어자바스크립트의 기능은 웹페이지의 보조적인 기능을 수행하는 것현재 모든 브라우저의 표준 프로그래밍 언어임1996년 마이크로소프트에서 자바스크립트 파생 버전인 JScript를 인터넷

모든 브라우저와 Node.js는 자바스크립트 엔진을 내장하고 있으므로, 이 두 개의 환경에서 자바스크립트를 해석하고 실행할 수 있다.브라우저목적: HTML, CSS, 자바스크립트를 실행해 웹페이지를 브라우저 화면에 렌더링하는 것추가 제공 기능: 클라이언트 사이드 Web

위의 코드를 계산(평가 evaluation)하기 위해선,10, 20, + 라는 기호(리터럴 literal과 연산자 operator)의 의미를 알아야 함10 + 20이라는 식(표현식 expression)의 의미도 해석(파싱 parsing)할 줄 알아야 함'+' 연산자의

표현식(expression)이 평가(evaluation)되어 나온 결과평가(evaluation) : 입력받은 식에 대한 값을 생성하거나 참조하는 것표현식(expression)은 20 + 30, 이 식을 평가하여 나온 값이 50보통은 리터럴로 값을 생성함사람이 이해할 수

값의 종류를 의미JS의 모든 값은 데이터 타입을 가지고, 두가지 타입으로 구분됨원시 타입 (primitive type) : 실제 데이터 값을 저장하는 타입, 변경 불가능한 값 immutable value객체 타입 (object/reference type) : 메모리 값

하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만듦연산의 대상을 피연산자(operand)라고 함피연산자는 값으로 평가될 수 있는 표현식이어야 함피연산자와 연산자의 조합으로 이뤄진 연산자 표현식도 값으로 평가될 수

조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용하며, 일반적으로 코드는 순차적으로 실행된다.제어문을 통해 코드의 실행 흐름을 인위적으로 제어할 수 있음코드 흐름을 이해하기 어렵게 만들기 때문에 가독성을 해침0개 이상의 문을 {중괄호}로 묶은 것으로, 코드 블록

기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것명시적 타입 변환 / 타입 캐스팅 : 개발자가 의도적으로 값의 타입을 변환하는 것암묵적 타입 변환 / 타입 강제 변환 : 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 JS 엔진에 의해 암묵적으로 타

0개 이상의 프로퍼티와 메서드로 구성된 집합체자바스크립트를 구성하는 거의 모든 것이 객체객체는 변경 가능한 값(mutable value)프로퍼티 : 객체의 상태를 나타내는 값(data)메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior)프

원시 값 Primitive type변경 불가능한 값 (immutable value)값에 의한 전달(pass by value) : 변수 할당시 원본의 원시 값이 복사되어 전달객체(참조) Object/Reference type변경 가능한 값 (mutable value)참조

일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것매개변수 : 함수 내부로 입력을 전달받는 변수인수 : 입력 (input)반환값 : 출력 (output) = 함수 실행 결과함수이름 : 특정 함수를 구별하기 위한 식별자함수 실행 = 함수 정

모든 식별자 (변수 이름, 함수 이름, 클래스 이름 등)가 선언된 위치에 의해 다른 코드가 식별자를 참조할 수 있는 유효 범위var let const 키워드로 선언한 변수의 스코프는 모두 다름모든 식별자는 자신이 선언된 위치에 의해 변수 자신을 다른 코드가 참조할 수

전역 변수의 무분별한 사용은 위험하기 때문에 전역 변수를 반드시 사용해야 할 이유가 없다면 지역 변수를 사용하는 걸 추천변수는 선언에 의해 생성되고, 할당을 통해 값을 가지고 언제가 소멸하는 생명주기를 가지고 있음변수에 생명 주기가 없다면, 한번 선언된 변수는 영원히

ES5까지 변수 선언은 var 키워드로 밖에 못했다변수 중복 선언 허용초기화 문이 있는 중복 선언은 값의 재할당초기화 문이 없는 선언은 무시됨함수 레벨 스코프오로지 함수의 코드 블록만을 지역 스코프로 인정함일반 코드 블록 내에서 선언해도 모두 전역 변수로 선언됨의도치

내부 슬롯과 메서드는 JS 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티와 의사 메서드ECMAScript 사양에 등장하는 \[\[]] 로 감싼 이름들이 내부 슬록과 메서드개발자가 직접 접근하거나 호출할 수 없음단 일부 내부 슬

new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환함빈 객체를 생성한 후 프로퍼티 또는 메서드를 추가하여 객체 완성생성자 함수 : new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수JS에선 다양한 빌트인 생성자 함수 제공함Obj

일급 객체가 되기 위한 조건 무명의 리터럴로 생성할 수 있다. (런타임에 생성 가능)변수나 자료구조(객체, 배열 등)에 저장할 수 있다.함수의 매개변수에 전달할 수 있다.함수의 반환값으로 사용할 수 있다.JS의 함수는 위의 조건을 모두 만족하므로 일급 객체임함수는 일급

JS는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어JS는 클래스 기반 객체지향 프로그래밍 언어보다 효율적이고 더 강력한 프로토타입 기반의 객체지향 프로그래밍 언어객체 기반의 프로그래밍 언어로, 원시 타입의 값을 제외한