목록개발 도서/자바스크립트 deepdive (48)
진취적 삶
제어문은 조건에 따라 코드 블록을 실행하거나 반복, 실행할때 사용한다. 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어 코드의 실행 순서가 변경되는것은 직관적인 코드의 흐름을 혼란스럽게 함 나중에 살펴볼 forEach ,map, filter,reduce 같은 고차 함수를 통해 복잡성 해결 8.1 블록문 js는 블록문을 하나의 실행 단위로 취급한다. 블록문은 언제나 문의 종료를 의미하는 자체 종결성을 갖는다 . 8.2 조건문 8.2.1 if ..else 문 var num = 2; var kind; if (num > 0) { kind = "양수"; } else if (num < 0) { kind = "음수"; } else { kind = "영"; } console.log(kind); var x = 2;..
9.1 타입 변환이란 ? 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입캐스팅이라고 한다. var x = 10; var str = x.toString(); console.log(typeof str, str); console.log(typeof x, x); 개발자가 의도와는 상관없이 표현식을 평가하는 도중에 js 엔진에 의해 암묵적으로 타입이 자동 변환 암묵적 타입변환 , 타입 강제 변환 공백을 추가함으로서 타입을 강제 변환 var x = 10; var str = x + " "; console.log(typeof x, x); console.log(typeof str, str); 명시적 타입 변환보다 암묵적 타입 변환이 가독성 측면에서 더 좋은 경우가 있기에 암묵적 타입변환이 발생..
10.1 객체란 ? 원시 값을 제외한 나머지 값은 모두 객체다 원시 값은 변경 불가능한 값이지만 객체는 변경가능한 값이다 . 프로퍼티는 키와 값으로 구성된다. var person = { name :'lee', age :20 } ; // name : property key // age : property key //'lee' : property value //20 : property value // name :'lee' => property 프로퍼티의 값이 함수일경우 일반 함수와 구분하기 위해서 method라 부른다. var counter = { num = 0; increase :function () { this.num ++ } }; 프로퍼티 : 객체의 상태를 나타내는 값 메소드 : 프로퍼티를 참조하고 조..
2.1 자바스크립트의 탄생 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그램의 도입으로 인해 자바스크립트의 탄생 2.2 자바스크립의 표준화 마이크로소프트에서 자바스크립트 파생버전인 JScript 를 만들었지만 jScript는 자사의 브라우저에서만 동작하는 기능을 추가하였기에 브라우저에 따라 정상적으로 동작하지 않는 크로스 브라우 이슈 가 발생하기 시작 이에 자바스크립트의 파편화를 방지하고 모든 브라우저애서 정상적으로 동작하는 표준화된 자바스크립트의 필요성이 대두 . ECMA 인터내셔널에 자바스크립트의 표준화를 요청 상표권 문제로 ECMAScript로 명명 ⇒ 우리가 사용하고있는 ES6 크로스 브라우 이슈 : 자사의 브라우저에서 사용가능하 기능을 추가하여 브라우저에 따라 동작이 ..
3.1 자바스크립트 실행 환경 JS 는 브라우저 환경 또는 node.js 환경에서 실행 할수 있다. 브라우저는 HTML,CSS,JS 실행해 웹페이지를 브라우저 화면에 랜더링하는것이 주 목적 node.js 는 브라우저 외부에서 js 실행 환경을 제공하는것이 주된 목적 DOM API 는 브라우저에서 지원 하지만 node.js는 제공 안함 node.js 는 파일을 생성하고 수정하는 파일 시스템을 제공하지만 브라우저는 이를 지원 안함 왜냐하면 브라우저를 통해 실행되는 js가 사용자 컴퓨터의 파일을 수정하거나 삭제 가능할 경우 컴퓨터가 악성코드에 노출되는것과 마찬가지이다 . 3.2 웹 브라우저 크롬 브라우저의 v8 js 엔진은 node.js 에서도 사용 3.2.1 개발자 도구 Elements 로딩된 웹페이지의 D..
4.1 변수란 무엇인가? 애플리케이션은 데이터를 입력받아 처리하고 그 결과를 출력하는것이 전부다 . 변수는 프로그래밍 언어에서 데이터를 관리하기 위한 핵심 개념이다 . 컴퓨터는 CPU를 사용해 연산하고, 메모리를 사용해 데이터를 기억한다. 메모리는 데이터를 저장할수 있는 메모리 셀의 집합체다 . 메모리 셀 하나의 크기는 1 바이트 (8비트) 컴퓨터는 메모리 셀의 크기 1 바이트 단위로 데이터를 저장하거나 읽어 들인다. 각 셀은 메모리 주소를 갖는다. 컴퓨터는 모든 데이터를 2진수로 처리한다. 따라서 메모리에 저장되는 데이터는 데이터의 종류와 상관없이 모두 2진수로 저장된다. 10 +20 = 30 30 이라는 값에 접근할려면 해당 메모리 주소로 들어가야 하나 메모리 주소를 통해 값에 접근한것은 치명적 오류..
5.1 값 값은 식이 평가되어 생성된 결과를 말한다. 값은 데이터 타입을 가지며 ,메모리에 2진수, 즉 비트의 나열로 저장된다. 데이터 타입에 따라 다르게 해석될수 있다. 변수에 할당 되는것은 값이다. 5.2 리터럴 리터럴 : 사람이 이해할수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 js엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다. 5.3 표현식 표현식은 값으로 평가될수 있는 문 , 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다. 리터럴, 식벽자 ,연산자 ,함수 호출 등의 조합으로 이뤄질수있다. 즉, 값으로 평가 될 수 있는 문은 모두 표현식이다 . 5.4 문 문: 프로그램을 구성하는 기본단위이자 최소 실행 단위이다 . 문의 집합이 프로그램, 문을..
1.1 프로그래밍이란? 컴퓨터에게는 양적 개념인 숫자를 사용해야 한다 . 상대적인 개념은 불명확하다. 컴퓨터의 관점에서 문제를 사고해야한다. 1.2 프로그래밍 언어 사람이 이해하는 자연어가 아니라 컴퓨터가 이해할수 있는 언어 즉 기계어로 전달해야한다. 프로그래밍 언어를 사용해서 컴퓨터가 이해할수 있는 기계어로 변환하는 일종의 번역기를 이용한다. 일종의 번역기를 컴파일러 혹은 인터프린터라고 한다. 프로그래밍언어는 사람과 컴퓨터 모두가 이해할수있는 약속된 형태의 인공어다 . 프로그래밍언어 = 구문 + 의미 1.3 구문과 의미 const number = 'string' console.log(number*number) 문법적으로는 틀리지 않으나 . number 이름의 변수에는 숫자를 할당하는것이 의미적으로 옳다..