자바스크립트 내부에서는 다른 데이터 형식들의 연산이 어떻게 실행될까??
아래 자바스크립트에서 사용되는 5개의 데이터 형식의 사칙연산을 실행해 보았다.
var strText = "1"
var intNum = 2
var bool = true
var nul = null
var edf = undefined
------------------------------------------------------------
※ 문자열 + 연산
0. strText + strText : 11
1. strText + intNum : 12
2. strText + bool : 1true
3. strText + nul : 1null
4. strText + edf : 1undefined
※ 문자열 - 연산
0. strText - strText : 0
1. strText - intNum : -1
2. strText - bool : 0
3. strText - nul : 1
4. strText - edf : NaN
※ 문자열 * 연산
0. strText * strText : 1
1. strText * intNum : 2
2. strText * bool : 1
3. strText * nul : 0
4. strText * edf : NaN
※ 문자열 / 연산
0. strText / strText : 1
1. strText / intNum : 0.5
2. strText / bool : 1
3. strText / nul : Infinity
4. strText / edf : NaN
------------------------------------------------------------
※ 숫자 + 연산
0. intNum + intNum : 4
1. intNum + bool : 3
2. intNum + nul : 2
3. intNum + edf : NaN
※ 숫자 - 연산
0. intNum - intNum : 0
1. intNum - bool : 1
2. intNum - nul : 2
3. intNum - edf : NaN
※ 숫자 * 연산
0. intNum * intNum : 4
1. intNum * bool : 2
2. intNum * nul : 0
3. intNum * edf : NaN
※ 숫자 / 연산
0. intNum / intNum : 1
1. intNum / bool : 2
2. intNum / nul : Infinity
3. intNum / edf : NaN
------------------------------------------------------------
※ 불린 + 연산
0. bool + bool : 2
1. bool + nul : 1
2. bool + edf : NaN
※ 불린 - 연산
0. bool - bool : 0
1. bool - nul : 1
2. bool - edf : NaN
※ 불린 * 연산
0. bool * bool : 1
1. bool * nul : 0
2. bool * edf : NaN
※ 불린 / 연산
0. bool / bool : 1
1. bool / nul : Infinity
2. bool / edf : NaN
------------------------------------------------------------
※ null + 연산
0. nul + nul : 0
1. nul + edf : NaN
※ null - 연산
0. nul - nul : 0
1. nul - edf : NaN
※ null * 연산
0. nul * nul : 0
1. nul * edf : NaN
※ null / 연산
0. nul / nul : NaN
1. nul / edf : NaN
------------------------------------------------------------
※ undefined + 연산
0. edf + edf : NaN
※ undefined - 연산
0. edf - edf : NaN
※ undefined * 연산
0. edf * edf : NaN
※ undefined / 연산
0. edf / edf : NaN
------------------------------------------------------------
결론 1.
1) + 연산에 문자열이 포함 되어 있다면, 그 연산의 결과값은 문자열 이다.
결론 2.
1) + 연산에 문자열이 포함 되어 있지 않다면, 그 연산의 결과값은 숫자형 이다.
2) 불린 타입은 true:1, false:0으로 인식하며, null은 0으로 인식한다.
3) undefined이 포함 되어 있다면 NaN의 결과값을 보여준다.
결론 3.
1) - 연산에 사용된 값들은 숫자형으로 인식 된다.
2) 단, 문자열의 경우 정수범위의 문자열은 숫자형, 한글,영어와 같은 문자열은 문자열로 인식 된다.
이와 같은 경우에는 결과값은 NaN이 된다.
3) 불린 타입은 true:1, false:0으로 인식하며, null은 0으로 인식한다.
4) undefined이 포함 되어 있다면 NaN의 결과값을 보여준다.
결론 4.
1) * 연산에 사용된 값들은 숫자형으로 인식 된다.
2) 단, 문자열의 경우 정수범위의 문자열은 숫자형, 한글,영어와 같은 문자열은 문자열로 인식 된다.
이와 같은 경우에는 결과값은 NaN이 된다.
3) 불린 타입은 true:1, false:0으로 인식하며, null은 0으로 인식한다.
4) undefined이 포함 되어 있다면 NaN의 결과값을 보여준다.
결론 5.
1) / 연산에 사용된 값들은 숫자형으로 인식 된다.
2) 단, 문자열의 경우 정수범위의 문자열은 숫자형, 한글,영어와 같은 문자열은 문자열로 인식 된다.
이와 같은 경우에는 결과값은 NaN이 된다.
3) 불린 타입은 true:1, false:0으로 인식하며, null은 0으로 인식한다.
4) undefined이 포함 되어 있다면 NaN의 결과값을 보여준다.
4) 1을 0으로 나누면 Infinity의 결과값을 보여준다.
5) null을 null로 나누면 NaN의 결과값을 보여준다.
'JavaScript' 카테고리의 다른 글
| replace - 문자열 변환 (0) | 2015.11.25 |
|---|---|
| JavaScript Reflection (0) | 2015.05.15 |
| 프로그램 실행 단계 (0) | 2015.02.04 |
| 원시 타입 - 문자열 & 불린 (0) | 2015.02.03 |
| 원시 타입 - 숫자 (0) | 2015.02.03 |