1. Scope 컴파일러이론 자바스크립트는 실행 되기전 컴파일하는 과정이있다. 1. Tokenizing / Lexing 문자열을 토큰이라는 덩어리로 나눈다. var a= 2;위의 코드를 예를 들면 var, a, =, 2, ; 로 tokenizing된다. lexing은 구문 분석에 사용되는 문법을 단순화 하는데 사용한다고 한다. 주석제거, 이스케이프 문자 교체와 같은 작업을 한다. 참고: Javascript evaluator part 1: Lexing 2. Parsing 토큰 스트림(배열)을 가져와서 언어구문을 검증하고 프로그램의 AST(Abstract Syntax Tree, 트리구조)를 만듭니다. 3. code-generation AST를 가져와 실행 가능한 코드로 바꿉니다. 스코프의 이해 프로세가 어떻..
Chapter 5 문법 4장에서 && 또는 ||연산자의 반환은 true, false가 아니었다 앞 또는 뒤의 결과를 반환하는데 만약 a && b || c면 반환값이 무엇일까 이는 연산자 우선순위에 따라 달라지게 된다. 연산자 우선순위는 && > || > ?, : 순으로 높다. , 연산자는 최하위다. 예제 1 var a = 42, b; b = ( a++, a ); //a++의 결과를 a에 할당 하므로 43 b = a++ ,a; // a값을 ++하기 전에 할당해서 b에 42를 할당함. (b = a++), a 로 해석함. 연산자 우선순위 때문. a; // 43 b; // 43 예제 2 (false && true) || true; // true false && (true || true); // false 이 둘..
Chapter 4 강제변환 Object의 인스턴스라는 말은 그 object가 무엇이 되었든 간에 prototype프로퍼티를 갖고 있어 체이닝을 통해 Object.prototype까지 도달할 수 있다는 뜻. null, undefined를 제외한 나머지 타입들이 전부 object의 인스턴스. 타입을 바꾸는 과정이 명시적이면 타입캐스팅 암시적이면 강제변환이라한다. let a = 42; let b = a + ""; //암시적 let c = String(a); //명시적 let d = "42"; +d; //42 환형참조객체 문자열화 시 에러 발생 a.toJSON = function(){ //직렬화에는 b만 포함시켜서 진행 -> 안전한 형태로 반환 return {b : this.b}; }; console.log(J..
Chapter 3 네이티브 네이티브 객체는 브라우저, nodeJS 등에 종속되지 않은 에크마 스크립트 명세의 내장 객체를 뜻한다. 즉 에크마스크립트만의 내장 객체인 것. 0. 네이티브 String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol() 여기 나온 값들은 모두 Object의 인스턴스이다. Object의 인스턴스라는 말은 위에 나온 것들 중 종류가 무엇이 되었든 [[prototpye]] 프로퍼티를 가지고 있어서 프로토타입 체이닝을 통해 Object.prototype까지 도달할 수 있다는 것 [[prototype]]은 브라우저의 __proto__ 를 의미함 모든 프로토타입 체인의 끝은 항상 Object...
Chapter 2 값 배열, 유사배열, 문자열, 숫자, 특수 값에 대해 알아본다. 1. 배열 JS 배열에는 어떤 타입이라도 담을 수 있다. let a = [1, "2", [3]];delete연산을 사용해서 원소를 제거할 수 있지만 해당 자리에는 undefined가 남고 length도 줄지 않는다. let a = []; a[0] = 1; a[2] = 3; // a[1]을 건너 뜀 a[1]; //undefiend a.length; // 3 이렇게 중간에 구멍난 배열이 생길 수 있다. 배열은 키, 프로퍼티를 추가할 수 있는데 권장하지 않는다. let a = []; a["foobar"] = 2; a.foobar; // 2 1.1 유사배열 유사배열을 진짜 배열로 바꾸고 싶을땐 다음과 같은 방법을 사용한다. fun..
Chapter 1 : 타입 JS는 타입이 있다. 타입이란 어떤 값을 다른 값과 분별할 수 있는 고유한 내부 특성의 집합이다. 1. 내장타입 JS에는 7가지 내장 타입이 존재한다. undefined null Boolean Object String Number Symbol UNBOSNS으로 외우자 ㅎㅎ Object를 제외한 나머지를 원시 타입이라 한다. 1.1 Typeof 로 알아보는 내장타입 값에 대한 타입은 typeof 연산자로 알 수 있는데 연산자를 통해 반환된 타입은 문자열로 표현된다. typeof typeof 13 => 13은 "Number" 이것은 문자열 => String null을 제외한 나머지 6개는 반환값과 매칭된다. typeof undefined === "undefined".. typeof..
- Total
- Today
- Yesterday