728x90

책을 다시 보면서 기본 지식을 다시 정리해보고 있다.

하다가 막히면 다시 원점에서 흘려버린 걸 다시 되짚어 가면서 시작하는 것이 도움이 될 수도 있기 때문이다.


모든 언어의 기본은 데이터 타입을 파악하는 것부터 시작한다.

자바스크립트에서는 기본 타입을 제외한 모든 값은 객체다.


자바스크립트는 변수를 선언할 때 var 라는 한가지 키워드를 사용한다.

 - 선언부에 Data Type을 기재하지 않는다.

 - var 선언문이 위치한 영역에 따라 전역/지역변수 결정

 - var 를 사용하지 않으면 전역(global)변수로 선언

var 로 변수를 선언하기 때문에 데이터 타입이 무엇인지 몰라서 헤매는 경우도 생기더라.

+ 는 숫자연산과 문자열 연결에 사용되므로 잘못된 결과가 나올 수 있으니 주의해서 봐야 한다.


숫자

 다른 언어와 달리 하나의 숫자형만 존재한다.

 모든 숫자를 64비트 부동 소수점 형태로 저장한다.

 모든 숫자를 실수로 처리하므로, 나눗셈 연산을 할 때는 주의해야 한다.

  ex) 1/2 = 0.5

 정수만 구하고 싶다면 Math.floor() 메서드를 사용한다.

 + 연산자는 숫자일 경우에는 더하기 연산이 수행된다.

 Number 형 변환 실패 결과는 NaN  

  ex) "abc" - 0 = NaN

 문자열

 작은 따옴표나 큰 따옴표로 생성한다.

 문자열은 문자 배열처럼 인덱스를 이용해서 접근할 수 있다.

 + 연산자는 문자열 연결 연산을 수행한다.

 boolean

 자바스크립트는 true 와 false를 나타내는 boolean 타입을 가진다.

 undefined

 자바스크립트에서 '값이 비어있음'을 나타낸다.

 typeof 연산자 결과는 undefined 이다. 즉, Data Type 이 정해지지 않은 타입

 null

 자바스크립트에서 '값이 비어있음'을 나타낸다.

 typeof 연산자 결과는 object 이다. null 이 아니다. 아무것도 참조하지 않는 값이다.

 객체

 자바스크립트 객체는 key:value 형태의 property들은 저장하는 컨테이너다.

  - 객체 내에서 변수는 속성(property)이라 부른다.

  - 객체 내에서 함수는 메서드(method)라 부른다.

  - 이름은 key라고 불린다.

 객체는 여러 개의 property들을 포함할 수 있다.

 객체 생성

   - 생성자 문법을 이용하여 객체 생성 :
     new 연산자 사용 var hotel = new Object(); // 객체를 위한 공간 생성

     this 키워드 -> window 객체를 나타냄

   - 객체 생성자 표기법을 이용하여 객체를 생성

 객체 property 삭제는 delete 연산자를 이용해서 삭제할 수 있지만 객체 자체는 삭제 못한다.

 상속이란 기존의 생성자 함수나 객체를 기반으로 새로운 생성자 함수나 객체를 쉽게 만드는 것

 비교

 기본 타입은 동등 연산자(==)를 이용해서 비교할 때 값을 비교한다.

 동등 연산자(==)는 피연산자의 타입이 다를 경우 타입 변환을 거친 다음 비교한다.
 참조 타입인 객체 비교는 참조값이 같아야 true 가 된다.

 일치 연산자(===)는 피연산자의 타입이 다를 경우 타입을 변경하지 않고 비교한다.

 배열

 자바스크립트에서 배열은 크기를 지정하지 않아도 된다.
 배열 리터럴은 []를 사용한다.
 동적으로 배열 원소를 추가할 수 있다.
 length 프로퍼티는 배열 내에서 가장 큰 인덱스에 1을 더한 값이다.

 실제 메모리는 length 크기처럼 할당되지 않는다.

 push() 메서드는 인수로 넘어온 항목을 배열의 끝에 추가한다.

 arr.length = 5;

 arr.push('english');

 생성자 함수로 배열을 생성할 때 new 연산자를 사용한다.

 delete arr[3]; // 배열 요소 삭제하라는 의미지만 실제는 해당 요소값을 undefined로 설정한다.


 배열도 객체이므로

  for(var i in arr) {

    console.log(i, arr[i]);

  }

  문을 사용해서 배열 내의 모든 프로퍼티를 열거할 수 있다. --> 불필요한 프로퍼티가 출력될 수 있다.

  for(var i=0; i<arr.length; i++) {

   console.log(i, arr[i]);

  }

  문을 사용하면 불필요한 프로퍼티가 출력되지 않는다.

 함수

 function 키워드로 함수를 선언한다.

 선언부에 Return Type 을 기재하지 않는다.

 자바스크립트에서는 함수도 하나의 값처럼 취급한다.

 함수도 숫자나 문자열처럼 변수에 할당하는 것이 가능하다.

 매개변수로 넘기는 값에 변수 타입을 기술하지 않는다.

 자바스크립트 함수 표현식에서 함수 이름은 꼭 붙이지 않아도 된다. (익명함수)

 함수 내부에서 정의된 매개변수는 var를 사용하여 정의한다.

 함수에 정의된 인자가 3개라고 가정하자.

   - 2개는 정의하나 나머지 하나를 정의하지 않으면 undefined 값이 할당된다.

   - 정의된 개수보다 많게 4개를 정의하면, 초과된 인수는 무시된다.


블로그 이미지

Link2Me

,