16장 - 프로퍼티 어트리뷰트프로퍼티와 어트리뷰트를 이해하기 위해 먼저 내부 슬롯(internal slot)과 내부 메서드(internal method)에 대해 알아보자. 16.1 내부 슬롯과 내부 메서드내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티(pseudo property)와 의사 메서드(pseudo method)다. ECMAScript 사양에 등장하는 이중 대괄호([[...]])로 감싼 이름들이 내부 슬롯과 내부 메서드다. 자바스크립트 엔진의 내부 로직이므로 원칙적으로 자바스크립트는 내부 슬롯과 내부 메서드에 개발자가 직접 접근하거나 호출할 수 있는 방법을 제공하지 않는다. 단, 일부 내부 슬롯과 내부 메서드에 한..
13장 - 스코프스코프란?모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프라고 한다. 즉 스코프는 식별자가 유효한 범위를 말한다.var var1 = 1;if(true){ var var2 = 2; if(true){ var var3 = 3; }}function foo(){ var var4 = 4; function bar(){ var var5 = 5; }}console.log(var1,var2,var3,var4,var5);// 1,2,3,RefrenceError,RefrenceErrorvar x = 'g';function foo(){ var x = 'l'; consol..
10장 - 객체 리터럴객체란?JS는 객체기반 프로그래밍 언어이며, 구성하는 거의 "모든 것"이 객체이다.- 원시 타입은 단 하나의 값, 객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조이다.- 원시타입은 변경 불가능한 값, 객체는 변경 가능한 값이다.- 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 key와 value로 구성된다.- js의 함수는 일급 객체 값으로 취급한다.var count = { num: 0, // 프로퍼티 : 객체의 상태를 나타내는 값 increase: function() { // 메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작 this.num++; }}; 객체 리터럴에 의한 객체 생성JS는 프로토타입 기반 객체지향 언어..
6장 - 데이터 타입자바스크립트의 데이터 타입의 종류 - 원시타입 vs 객체 타입 원시 타입Number : 숫자 정수 실수 구분 없이 하나의 숫자 타입 | Infinity, -Infinity, NaN..String : 문자열 타입Bollean : 논리적 참(true)과 거짓(false)undefined 타입 : var 키워드로 선언된 변수에 암묵적으로 할당되는 값null 타입 : 값이 없다는 것을 의도적으로 명시할 때 사용하는 값symbol 타입 : 변경 불가능한 원시 타입의 값이며 다른 값과 중복되지 않는 유일 무이한 값객체객체, 함수, 배열 ==> JS는 객체 기반의 언어이며, 자바스크립트를 이루고 있는 거의 모든 것이 객체 숫자 타입자바스크립트는 하나의 숫자 타입만 존재하며 다른 언어의 int..
1장 - 프로그래밍프로그래밍이란?프로그래밍이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션 이를 위해선 문제 해결 능력이 중요하고, 0과 1밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업을 의미한다. 컴퓨팅 사고컴퓨터의 관점에서 문제를 사고하려면 해결 과제를 작은 단위로 분해하고 패턴화 해서 추출하며, 프로그래밍 내에서 사용될 모든 개념은 평가 가능하도록 정의해야 한다. 프로그래밍 언어기계어는 사람이 사용하는 언어와 체계가 다르기 때문에 직접 명령을 전달하는 것은 매우 어려워서 컴파일러 혹은 인터프리터를 사용해서 컴퓨터와 대화한다. 이러한 프로그래밍 언어는 구문과 의미의 조합으로 표현된다. 구문과 의미문법을 잘 안다고 해서 외국어를 잘한다고 말할 수 없듯이, ..