연산자 우선순위 이해하기
컴퓨터로 계산할 때는 숫자 두 개만 계산하기 보다는 여러개를 동시에 계산하는 경우가 더 많다.
연산자로 우선순위대로 계산이 된다.
자바스크립트는 정수, 실수가 따로 나뉘어 있지 않다.
하지만 실수 연산을 할 때는 조심할 점이 있다.
0.1 + 0.2 를 더하면 0.3이 아니라 결과가 이상하게 출력된다.
컴퓨터는 0과 1밖에 알지 못한다. 그런데 2진법으로 실수를 표현하면 무한 반복되는 실수가 있어서 어쩔 수 없이 근사값으로 저장한다.
그래서 우리가 사용하는 10진법과 차이가 발생한다 이러한 현상을 부동소수점 문제라고 한다.
이외에도 다양한 실수 연산에서 오차가 발생하므로 실수르 계산할 때 다른 방법을 주로 사용한다.
가장 간단한 방법은 실수를 정수로 .
꾸는 실수로 다시 마지막에 뒤 계산한 바꿔서 계산한 뒤 마지막에 다시 실수로 바꾸는 것이다.
- 불 값 boolean
부동소수점 문제를 설명하면서 컴퓨터는 0과 1밖에 모른다고 했다.
1과 0은 참(true)과 거짓(false)에 대응한다.
자바스크립트에서도 true와 false를 나타내는 불값(boolean)이라는 자료형이 있다.
- 불 값 표현하기
불 값을 표현할 때는 따옴표로 감싸지 않고 true와 false를 입력한다.
typeof 를 앞에 붙여보면 콘솔에 'boolean'이라는 값이 출력된다. 값의 자료형이 불 값이라는 뜻이다.
- 비교 연산자 사용하기
참과 거짓은 논리식의 결과값으로 주로 사용된다. 예를들어 숫자를 비교할 때 결과값으로 불 값이 나온다.
비교 연산자에는 초과, 미만, 이상, 이하를 나타내는 연산자 말고도 두 값이 같음과 같지 않음을 나타내는 연산자도 있다.
== 는 양쪽 값이 같은지 비교하는 연산자, != 는 양쪽 같이 다른지 비교하는 연산자이다.
5 = 5 는 대입
5 == 5 5와 5는 같다
5 != 6 5와 6은 같지 않다.
- NaN끼리 비교하기
값 중에서 NaN은 비교할 때 독특한 성질을 띈다. 바로 NaN끼리 비교할 때 false 값을 가진다는 것이다.
이는 숫자, 문자열, 불 값을 통틀어 false가 나오는 유일한 값이다.
<= 나 >= 연산자를 써도 결과는 false만 나온다. NaN 은 비교 연산에서 false를 출력한다고 알아두자!
다만 != 연산에서는 true 를 출력한다.
- 불 값 비교하기
true가 false 보다 큰 값이라는 것을 기억하자!
true 는 숫자는 변환하면 1 이고, false는 숫자로 변환하면 0이다.
- 문자열 비교하기
기본으로 문자의 번호를 따른다. 문자의 번호가 클수로 값이 크다.
첫문자가 같은 글자일 때는 첫문자를 빼고 나머지를 다시 비교한다.
b가 a보다 문자번호가 크다(b는 98, a는 97)
첫 문자인 a가 서로 같으므로 다음 문자르 비교한다. b와 d 중에서 d가 값이 더 크다 (d는 100)
특수문자도 마찬가지로 문자열과 크기 비교가 된다.
- 문자의 번호 알아보기
문자의 번호를 알아보려면 charCodeAt을 사용한다.
찾고자 하는 문자열 뒤에 .charCodeAt()을 붙이면 문자의 번호가 나온다.
- 문자열과 숫자의 크기 비교하기
빼기 연산자 때처럼 다른 자료형이 모두 숫자로 형 변환 된 후 비교한다.
따라서 문자열 3은 숫자 3이 되어 5보다 작다는 것이 성립된다.
'abc'를 숫자로 바꾸면 NaN이 된다. NaN 과의 비교는 false 이므로 결과값이 false 가 된다.
불값도 비교 연산을 할 때는 숫자로 형변환 된다.
문자열 0 도 숫자 0으로 형 변환되고, true도 숫자 1로 형변환 된다. 따라서 결과값은 true 이다.
- == 와 === 차이
자료형이 다른 경우에는 형 변환을 한 후 비교하기 때문에 다음과 같이 모두 true가 출력된다.
자료형까지 같은지 비교하는 연산자는 === 이다.
값을 비교할 때 값 뿐만 아니라 자료형까지도 같은지 비교한다.
'☭DEVELOPER > #4 자바스크립트' 카테고리의 다른 글
자바스크립트 | 레츠기릿 자바스크립트 9 (0) | 2024.01.12 |
---|---|
자바스크립트 | 레츠기릿 자바스크립트 8 (2) | 2024.01.09 |
자바스크립트 | 레츠기릿 자바스크립트 6 (1) | 2024.01.05 |
자바스크립트 | 레츠기릿 자바스크립트 5 (0) | 2024.01.05 |
자바스크립트 | 레츠기릿 자바스크립트 4 (0) | 2024.01.05 |