Hello World

5장 표현식과 연산자 본문

Javascript/Book Study

5장 표현식과 연산자

EnterKey 2012. 8. 9. 18:25
반응형

5장 표현식과 연산자는 자바스크립트 언어만의 특징이 슬슬 보이기 시작하는 단원이 아닐까 생각한다.


1. 피연산자 타입 :
- ‘ + ‘ 연산자 : 숫자타입 피연산자 = 덧셈
        문자열타입 피연산자 = 이어 붙임
       - 문자열 하나와 숫자 하나를 전달 받을 경우,  

 숫자를 문자열로 변환하여 얻어진 문자열을 원래의 문자열과 이어 붙인다.


2. 동등 ( == ) 과 일치 ( === ) :
1. 일치하는지 아닌지 판단하는데의 규칙
  - 두 값의 타입이 다르면, 두 값은 일치하지 않음
  - 두 값이 모두 숫자이고 값이 같다면 두 값은 일치. 단, 적어도 하나의 값이 NaN일 경우 두 값은 일치하지 않음.      NaN값은 어느 값과도 일치하지 않는다.
  - 두 값이 모두 문자열이고 같은 위치에 정확히 같은 문자들을 갖고 있다면 두 값은 일치함.

  - 두 값이 모두 불리언 값 true, false 인 경우 두 값은 일치한다.
  - 두 값이 같은 객체, 배열 또는 함수를 참조할 경우 두 값은 일치
    두 값이 서로 별개의 객체를 참조할 경우 두 값은 일치하지않는다. 두 객체의 프로퍼티가 일치하거나 두 배열이 원소가 일치한다고 해도 마찬가지다.

  - 두 값이 모두 null, undefined일 경우에만 두 값은 일치한다.

2. 동등한지 아닌지 판단하는데의 규칙
  - 두 값의 타입이 같은 경우
: 두 값이 일치하는지 테스트. 두 값이 일치할 경우 그 둘은 동등.            불 일치하면 동등하지 않다.

  - 두 값의 타입이 다른 경우 :
- 두 값 중 하나가 null이고 다른 하나가 undefined라면 두 값은 동등
- 한 값이 숫자이고 다른 하나는 문자열이면, 문자열을 숫자로 변환한 후 이를 사용해 다시 비교한다.
- 두 값중 하나가 true이면, 이를 1로 변환한 후 다시 비교한다. 

두 값중 하나가 false이면, 이를 0으로 변환한 후 다시 비교한다.

        - 한 값이 객체이고 다른 하나는 숫자 or 문자열이면,
          객체를 기본 타입의 값으로 변환한 후 다시 비교한다.


* 객체를 기본 타입으로 변환하는 데에는 valueOf()를 시도 한 후 toString()으로 변환


3. in 연산자 :         - 좌변의 피연산자로 문자열을 받음. 우변의 피연산자로는 객체나 배열을 받음.
- 좌변 값이 우변 객체의 프로퍼티 이름에 해당할 경우 연산 결과는 true이다.

4. 문자열 연산자 :

- + 연산자 : 두 문자열 피 연산자를 이어 붙인다.

숫자 피 연산자 보다 문자열 피 연산자에 우선권을 부여 한다.
두 피연산자 중 하나가 문자열이면 다른 하나의 피연산자를 문자열로 변환하고

결과로 얻어지는 두 문자열을 이어 붙인다.


- 비교 시에는 문자열을 숫자로 변환하여 비교하려고 한다.

5. typeof 연산자
- 숫자, 문자열, 불리언 값일 경우 : “number”, “string”, “boolean” 리턴.
- 함수 타입의 피 연산자 : “function” 리턴
- 정의 되지 않은 피연산자 : “undefined”
- Number, String, Boolean 등 wrapper 객체 : “object”

cf 1) 모든 클라이언트 측 객체에 대한 typeof의 결과는 “object” 이다.
cf 2) typeof 는 모든 객체와 배열 타입에 대해 “object” 결과를 반환하기 때문에         오직 객체를 다른 기본 타입들과 구분하는 용도로만 쓸 수 있다. 

한 객체와 다른 객체를 구분하기 위해서는 instanceof 연산자 constructor 프로퍼티와 같은 다른 기법을 사용해야 한다.


6. delete 연산자
- 피연산자로 지정된 객체 프로퍼티, 배열 원소 또는 변수의 삭제를 시도 한다.
- 삭제에 성공하였을 시에는 true, 실패하였을 시에는 false를 리턴한다.

- 삭제된 프로퍼티나 변수, 배열 원소는 단순히 undefined값으로 설정된 것이 아니라 

더이상 존재하지 않는 것이 되어 버린다.


반응형

'Javascript > Book Study' 카테고리의 다른 글

7장 객체와 배열  (0) 2012.08.14
6장 문장  (0) 2012.08.14
4장 변수  (0) 2012.08.09
3장 데이터 타입과 값  (0) 2012.08.09
2장 어휘구조  (0) 2012.08.09
Comments