연산자
표현식을 대상으로 산술, 비교 등을 수행해 하나의 값을 만듦.
이 때 연산의 대상을 피연산자라 함.
피연산자는 값으로 평가될 수 있는 표현식
1. 산술 연산자
: 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자값을 만듦.
산술이 불가능한 경우 NaN을 반환
이항 산술 연산자
: 어떤 산술 연산을 해도 피연산자의 값이 바뀌는 경우는 없고 언제나 새로운 값을 만든다.
5 + 2;
5 - 2;
5 * 2;
5 / 2;
5 % 2;
단항 산술 연산자
: 1개의 피연산자를 산술 연산하여 숫자 값을 만듦.
++, -- → 피연산자의 값을 변경하는 부수 효과가 있음. (위치에 따라 의미가 다름)
+, - → 부수효과 없음.
var x = 5, result;
result = x++; console.log(result, x); // 5 6 선할당 후증가
result = ++x; console.log(result, x); // 7 7 선증가 후할당
result = x--; console.log(result, x); // 7 6 선할당 후감소
result = --x; console.log(result, x); // 5 5 선감소 후할당
문자열 연결 연산자
: +연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작
암묵적 타입 변환, 타입 강제변환이라고 함.
'1' + 2; //'12'
1 + true; // 2 -> true는 1로 타입 변환
1 - false; // 1 -> false는 0으로 타입 변환
1 - null; // 1 -> null은 0으로 타입 변환
2. 할당 연산자
: 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당
할당문은 값으로 평가되는 표현식인 문으로서 할당된 값으로 평가된다.
동등/일치 비교연산자
동등: 느슨한 비교 ==
일치: 엄격한 비교 ===
❗ 예외
NaN === NaN; // -> false
0 === -0; //true
- NaN은 자신과 일치하지 않는 유일한 값, 숫자가 NaN인지 확인하려면 isNaN을 사용하기
- 양수 0과 음수 0도 true라고 반환함. Object.is(-0, 0) 메서드를 사용해서 검사해야함.
4. 삼항 조건 연산자
: if …else 문은 표현식이 아님. 값처럼 사용할 수 없음.
삼항연산자는 값으로 평가 됨.
//형식
조건식 ? 조건식이 true일 때 반환할 값 : 조건식이 false일 때
//예시
var result = score >= 60 ? 'pass' : 'fail'
논리 연산자
: || 논리합, && 논리곱, ! 부정
쉼표 연산자
var x, y, z;
x = 1, y = 2, z = 3; //3
: 마지막 피연산자의 평가 결과를 반환
그룹 연산자
: 소괄호 ( ) 그룹 연산자는 연산자 우선순위가 가장 높음.
typeof 연산자
: 피연산자의 데이터 타입을 문자열로 반환
typeof '' // "string"
typeof 1 // "number"
typeof NaN // "number"
.....
// 버그
typeof null // "object"
typeof null을 하면 null이 아닌 object를 반환함.
값이 null 타입인지 확인할 때는 일치 연산자(===)를 사용하기.
지수연산자
: es7에서 도입됨. 거듭제곱
지수연산자가 도입되기 전에는 Math.pow 메서드를 사용했었음.
2 ** 2; // 4
(-5) ** 2; //25
2 ** ( 3 ** 2 ); //512
'언어 > JavaScript' 카테고리의 다른 글
input range 커스텀 (0) | 2024.06.24 |
---|---|
[자바스크립트 딥다이브] 8장 제어문 (0) | 2024.04.02 |
[자바스크립트 딥다이브] 5장 표현식과 문, 6장 데이터 타입 (1) | 2024.03.29 |
[자바스크립트 딥다이브] 4장 변수 (0) | 2024.03.26 |
[자바스크립트 딥다이브] 프로그래밍, 자바스크립트란? (0) | 2024.03.25 |