일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- reactive
- spring reactive
- 웹 커리큘럼
- Spring Framework
- 웹 스터디
- 공유기 서버
- 서버운영
- reactor core
- Spring Batch
- 웹앱
- ipTIME
- reactor
- Today
- Total
Hello World
5장 표현식과 연산자 본문
5장 표현식과 연산자는 자바스크립트 언어만의 특징이 슬슬 보이기 시작하는 단원이 아닐까 생각한다.
1. 피연산자 타입 :
- ‘ + ‘ 연산자 : 숫자타입 피연산자 = 덧셈
문자열타입 피연산자 = 이어 붙임
- 문자열 하나와 숫자 하나를 전달 받을 경우,
숫자를 문자열로 변환하여 얻어진 문자열을 원래의 문자열과 이어 붙인다.
2. 동등 ( == ) 과 일치 ( === ) :
1. 일치하는지 아닌지 판단하는데의 규칙
- 두 값의 타입이 다르면, 두 값은 일치하지 않음
- 두 값이 모두 숫자이고 값이 같다면 두 값은 일치.
단, 적어도 하나의 값이 NaN일 경우 두 값은 일치하지 않음.
NaN값은 어느 값과도 일치하지 않는다.
- 두 값이 모두 문자열이고 같은 위치에 정확히 같은 문자들을 갖고 있다면 두 값은 일치함.
- 두 값이 모두 불리언 값 true, false 인 경우 두 값은 일치한다.
- 두 값이 같은 객체, 배열 또는 함수를 참조할 경우 두 값은 일치
두 값이 서로 별개의 객체를 참조할 경우 두 값은 일치하지않는다.
두 객체의 프로퍼티가 일치하거나 두 배열이 원소가 일치한다고 해도 마찬가지다.
- 두 값이 모두 null, undefined일 경우에만 두 값은 일치한다.
2. 동등한지 아닌지 판단하는데의 규칙
- 두 값의 타입이 같은 경우
: 두 값이 일치하는지 테스트. 두 값이 일치할 경우 그 둘은 동등.
불 일치하면 동등하지 않다.
- 두 값의 타입이 다른 경우 :
- 두 값 중 하나가 null이고 다른 하나가 undefined라면 두 값은 동등
- 한 값이 숫자이고 다른 하나는 문자열이면,
문자열을 숫자로 변환한 후 이를 사용해 다시 비교한다.
- 두 값중 하나가 true이면, 이를 1로 변환한 후 다시 비교한다.
두 값중 하나가 false이면, 이를 0으로 변환한 후 다시 비교한다.
- 한 값이 객체이고 다른 하나는 숫자 or 문자열이면,
객체를 기본 타입의 값으로 변환한 후 다시 비교한다.
* 객체를 기본 타입으로 변환하는 데에는 valueOf()를 시도 한 후 toString()으로 변환
3. in 연산자 : - 좌변의 피연산자로 문자열을 받음. 우변의 피연산자로는 객체나 배열을 받음.
- 좌변 값이 우변 객체의 프로퍼티 이름에 해당할 경우 연산 결과는 true이다.
4. 문자열 연산자 :
- + 연산자 : 두 문자열 피 연산자를 이어 붙인다.
숫자 피 연산자 보다 문자열 피 연산자에 우선권을 부여 한다.
두 피연산자 중 하나가 문자열이면 다른 하나의 피연산자를 문자열로 변환하고
결과로 얻어지는 두 문자열을 이어 붙인다.
- 비교 시에는 문자열을 숫자로 변환하여 비교하려고 한다.
- 숫자, 문자열, 불리언 값일 경우 : “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 |