자바스크립트의 태생적 특징 - 자바스크립트는 웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도를 목적으로 태어났다. 기본 개념과 동작 원리 이해의 중요성 - 기본 개념과 동작 원리를 이해하지 못한 상태에서 복사 붙여넣기로 단순히 동작만 하는
프로그래밍이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다. 프로그래밍에 앞서 해결해야 할 문제(요구사항)을 명확히 이해해야 한다. 복잡함을 단순하게 분해하고 자룔를 정리하고 구분해야 하며 순서에 맞게 행위를 배열해야 한다. 문제 해결 해결 방안을 고려할 때 컴퓨
넷스케이프 커뮤니케이션즈는 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어를 도입하기로 결정한다. 이렇게 탄생한 것이 자바스크립트 🤤🤤1996년 8월, 마이크로소프트는 자바스크립트의 파생 버전인 Jscript를 IE 3.0 에 탑
모든 브라우저는 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장하고 있다.브라우저는 HTML, CSS, JS 를 실행해 웹페이지를 브라우저 화면에 렌더링 하는 것이 주된 목적이지만 Node.js 는 브라우저 외부에서 자바스크립트 실행 환경을 제공하는 것
애플리케이션은 곧 데이터를 다룸데이터를 입력받아 처리하고 결과를 출력하는 게 전부!즉, 변수는 데이터를 관리하기 위한 핵심 개념10 + 20컴퓨터는 CPU를 사용해 연산하고, 메모리를 사용해 데이터를 기억한다. 또한 모든 데이터를 2진수로 처리한다. 메모리는 데이터를
값은 식(표현식)이 평가되어 생성된 결과를 말한다. 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다. 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다. 즉 리터럴은 값을 생성하기 위해 미리
데이터 타입은 값의 종류를 말한다. 자바스크립트(ES6)는 7개의 데이터 타입을 제공한다. 7개의 데이터 타입은 원시 타입과 객체 타입으로 분류할 수 있다. c나 java의 경우, 정수와 실수를 구분해서 int, long, float, double 등과 같은 다양한 숫
7.1 산술 연산자 산술 연산자는 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다. 산술 연산이 불가능한 경우, NaN 을 반환한다. 산술 연산자는 피연산자의 개수에 따라 이항, 단항으로 구분할 수 있다. 7.1.1 이항 산술 연산자 이항 산술 연
제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다. 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다. 자바스크립트는 블록문을 하나의 실행 단위로 취급한다. 조건문은 주어진 조건식의 평가 결과에 따라 코드 블
자바스크립트의 모든 값은 타입이 있다. 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환할 수 있다. 명시적 타입 변환(타입 캐스팅) : 개발자가 의도적으로 값의 타입 변환암묵적 타입 변환(타입 강제 변환) : 자바스크립트 엔진에 의해 암묵적으로 타입이 변환암묵적
자바스크립트는 객체 기반의 프로그래밍 언어이다.원시 값을 제외한 나머지 값( 함수, 배열, 정규 표현식 등)은 모두 객체이다. 원시 값은 변경 불가능한 값(immutable value)이지만 객체 타입의 값, 즉 객체는 변경 가능한 값(mutable value)이다.
자바스크립트가 제공하는 7가지 데이터 타입(숫자, 문자열, 불리언, null, undefined, 심벌, 객체 타입)은 크게 원시 타입과 객체 타입으로 구분할 수 있다. 크게 세가지 측면에서 다르다. 원시 타입 값은 변경 불가능한 값(immutable value)이다.
함수는 자바스크립트에서 가장 중요한 핵심 개념프로그래밍 언어의 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것함수 내부로 입력을 전달 받은 변수를 매개변수, 입력을 인수, 출력을 반환값이라고 한다. 코드의 재사용이라는 측면에서
스코프는 유효 범위이다.var 키워드로 선언한 변수 let, const 키워드로 선언한 변수의 스코프는 모두 다르게 동작한다. 스코프는 변수 그리고 함수와 깊은 관련이 있다. 모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)은 자신이 선언된 위치에 의해 다른 코드
전역 변수의 무분별한 사용은 위험하다! 😱😱 변수는 선언에 의해 생성되고 할당을 통해 값을 갖는다. 그리고 언젠가 소멸한다. 즉 생명주기를 갖고 있다. 전역 변수의 생명 주기는 애플리케이션의 생명 주기와 같다. 하지만 함수 내부에서 선언된 지역 변수는 함수가 호출되
ES6 까지 변수를 선언할 수 있는 유일한 방법은 var 키워드를 사용하는 것이였다. 이는 주의를 기울이지 않으면 심각한 문제를 발생시킬 수 있다.var 키워드로 선언한 변수는 중복 선언이 가능하다. 동일한 이름의 변수가 이미 선언되어 있는 것을 모르고 변수를 중복 선
내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScrpit 사양에서 사용하는 의사 프로퍼티와 의사 메서드다. 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 내부 로직이므로 원칙적으로 자바스크립트는 내부 슬롯과 내부 메서드에 직접적으
17.1 Object 생성자 함수 생성자 함수란 new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수를 말한다. 생성자 함수에 의해 생성된 객체를 인스턴스라 한다. object 생성자 함수 외에도 String, Number, Boolean, Function,
18.1 일급 객체 다음의 조건을 만족하는 객체를 일급 객체라고 한다. 무명의 리터럴로 생성할 수 있다. (런타임 생성 가능) 변수나 자료구조(객체, 배열 등)에 저장할 수 있음 함수의 매개변수에 전달 가능 함수의 반환값으로 사용할 수 있
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 타입 패러다임 프로그래밍 언어다. C++ 나 자바 같은 클래스 기반 언어의 특징인 클래스와 상속, 캡슐화를 위한 키워드인 public, private, protected 이 없어서
리터럴이란? 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다. 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다. 즉 리터럴은 값을 생성하기 위해 미리 약속한 표기법이라고 할 수 있다.리터럴
JS 는 객체의 프로퍼티에 접근하려고 할 때 해당 객체에 접근하려는 프로퍼티가 없다면 \[Prototype] 내부 슬롯의 참조를 따라 자신의 부모 역할을 하는 프로토타입의 프로퍼티를 순차적으로 검색한다. 이를 프로토타입 체인이라고 한다. 이는 자바스크립트가 객체지향 프
new 연산자 없이도 객체 생성 가능 프로토타입을 지정하면서도 객체 생성 객체 리터럴에 의해 생성된 객체도 상속받을 수 있음 Object.create 메서드는 첫 번째 매개변수에 전달한 객체의 프로토타입 체인에 속하는 객체를 생성한다. 객체를 생성하면서 상속
개발자의 의도와 상관없이 발생한 암묵적 전역은 오류를 발생시키는 원인이 될 가능성이 크다. 따라서 반드시 var, let, const 키워드를 사용하여 변수를 선언한 다음 사용해야 한다. ES5부터 strict mode(엄격 모드) 가 추가되었다. 이는 JS 언어 문법
표준 빌트인 객체 : ECMAScript 사야에 정의된 객체, 애플리케이션 전역의 공통 기능을 제공함호스트 객체 : 자바스크립트 실행 환경 (브라우저 환경 또는 node.js 환경)에서 제공하는 객체 브라우저 환경 : DOM, BOM, Canvas, XMLHttpReq
22.1 this 키워드 객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 자료구조다. 동작을 나타내는 메서드는 프로퍼티를 참조하고 변경할 수 있어야 하므로 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다.
실행 컨텍스트는 JS의 동작 원리를 담고 있는 핵심 개념이다.
클로저는 자바스크립트 고유의 개념이 아니다. 함수를 일급 객체로 취급하는 함숭여 프로그래밍 언어(Haskell, Lisp, Erlng, Scala 등)에서 사용되는 중요한 특성이다. 24.1 렉시컬 스코프 자바스크립트 엔진은 함수를 어디서 호출했는지가 아니라 함수