-
Notifications
You must be signed in to change notification settings - Fork 0
Inside JavaScript(1~3)
dsboo edited this page Oct 18, 2016
·
1 revision
- 웹브라우저에서 동작하는 스크립트 언어
- prototype.js -> jQuery가 개발되면서 많이 발전됩
- Node.js가 개발되면서 자바스크립트를 이용해 서버단 개발이 가능해짐
- 웹 개발 : 전통적인 역할로 웹 개발자에게는 이미 중요한 컨포넌트임
- 서버개발 : Node.js의 출현으로 서버개발도 활발해졌으며 express, socket.io등의 라이브러리도 등장
- 애플리케이션 개발 : 웹OS의 등장으로 웹 기반 플랫폼에서는 자바스크립트가 중요해 졌으며 폰갭(PhoneGap)과 같은 개발도구로 디바이스에 대한 동작제어도 가능
- 객체 : 자바스크립트는 기본형인 boolean, number, string의 형과 null, undefinded의 특수한 값을 제외한 나머지는 전부 객체로 취급한다.
- 함수 : 함수를 일급객체로 취급, 3장에서 설명
- 프로토타입 : 모든 객체는 링크(Link)인 프로토타입을 가짐, 4장에서 설명
- 실행 컨텍스트와 클로저 : 자바스크립트는 자신만의 실행 컨텍스트를 만들고 자신만의 스코프(scope)를 가지며 그 안에서 실행된다. 이를 이용해 클로저를 구현, 5장에서 설명
- 자바스트립트 개발 비중이 높아지면서, 웹브라우저의 기능(애드온, 개발자도구)들이 나오고 웹스톰과 같은 IDE도 개발되었음(해당 툴의 설치 및 활용방법은 교재(p23~34) 참조)
자바스크립트의 데이터 타입은 기본타입, 참조타입으로 나뉨
- 자바스크립트의 기본 타입은 숫자, 문자열, 불린값, null, undefined가 있음
- 자바스크립트는 C언어와 달리 하나의 숫자형(number, 64비티 부동소수점 형태)만 존재
- 작은 따옴표('')나 큰 따옴표("")로 생성, var srt = "test"
- 한번 생성된 문자열은 수정이 불가능
- null : 개발자가 명시적으로 값이 비어있음을 나타낸 경우
- undefinded : 값이 아직 할당되지 않은 경우
- 값이 null인 변수는 object형 이기때문에 일치연산자(===)을 이용해 비교
- 위에 정의된 기본타입을 제외한 나머지, 배열, 함수, 정규표현식 등
- 객체는 key:value 기반
- 객체에 포함된 함수를 메서드라고 정의한다.
- Object() 함수를 이용한 생성, var obj = new Object();
- 리터럴 방식의 생성 var obj = {name:'foo', age:34};
- 생성자 함수를 이용한 생성, 4장에서 스터디
- 동등 연산자(==)는 객체의 프로퍼티가 아닌 참조값으로 비교
- 기본타입은 call by value 방식으로 함수를 호출할때 값을 복사하여 복사한 값이 전달
- 객체타입은 call by reference로 함수를 호출할 때 객체의 참조값이 전달된다.
- 자바 스크립트의 모든 객체는 자신의 부모역할을 하는 객체와 연결되어 있으며, 부모객체의 프로퍼티를 자신의 것처럼 사용가능, java의 상속과 비슷한 개념이다.
- 새로운 배열을 만들때 사용하는 표기법 대괄호([])를 사용, var array = [1, 2, 3];
- 배열의 인덱스로 값을 생성, C나 java와는 다르게 아무 인덱스로나 생성가능, var array = []; array[3]="tmon";
- 값이 할당되지 않는 인덱스의 값은 undefined로 생성된다.
- 기본적으로 배열은 Array.prototype를 상속, 객체는 Object.prototype를 상속한다.
- 따라서 서로 이용할 수 있는 메서드가 틀림, 배열은 length가 있지만 객체는 정의하기 전까지 없음
- 배열도 기본적으로는 객체이므로 프로퍼티를 동적으로 추가할 수 있다, var arr = [3,4]; arr.name = 'tmon';
- delete 연산자를 배열의 요소를 삭제 가능, var arr = [3,4]; delete arr[1];
- Array() 생성자 함수를 이용해 생성가능, var arr = new Array(3);
- length 프로퍼티를 가지는 객체를 의미, var obj = {name : '1', length : 1};
- 숫자, 문자열, 불린값ㅏㄴ에 대해 각 타입별로 호출 가능한 표준 메서드가 정의되어 있음, toExponential() : 숫자를 지수형태의 문자열로 반환
-
- 연산자는 두 변수가 모두 숫자인 경우 더하기 연산을 나머지는 문자열 연결 연상을 수행한다.
- typeof 연산자 : 피연산자의 타입을 문자열로 반환
- 동등연산자(==)는 비교하려는 피연산자의 타입이 다를 경우 같은 타입으로 변환하여 비교, 일치연산자(===)는 타입을 변환하지 않고 비교한다.
- !! 연산자는 피연산자를 불린형으로 변환