7장. 연산자

Happhee·2022년 1월 17일
0

JS : Depp Dive

목록 보기
4/35
post-thumbnail

연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리 , 타입 등을 수행해 하나의 을 만들어 낸다.

// 산술 연산자
5 * 4 // -> 20
// 문자열 연결 연산자
'My name is ' + 'Lee' // -> 'My name is Lee'
// 할당 연산자
color = 'red' // -> 'red'
// 비교 연산자
3 > 5 // -> false
// 논리 연산자
true && false // -> false
// 타입 연산자 (문자열 반환)
typeof 'Hi' // -> string

1. 산술 연산자

  • 이항 산술 연산자
    + - * / %
  • 단항 산술 연산자
    ++ -- + -
  • 문자열 연결 연산자
  • 연산자가 있고, 피연산자 중 하나가 문자열이면 문자열 연결 연산자로 동작
    암묵적 타입 변환 또는 타입 강제 변환이 이루어진다
    -> 서버에서 가져올때 문자가 많으므로 +'012345'로 사용해 12345로 가져온다

2. 할당 연산자

값으로 평가되는 표현식인 문으로서 할당된 값으로 평가

3. 비교 연산자

  • 동등/ 일치 비교 연산자
    == : 동등 비교 연산자 -> 암묵적 타입 변환을 통해 타입을 일치시킨후 비교
    === : 일치 비교 연산자 -> 타입과 값이 모두 같아야 true를 반환, isNaN()
console.log( 0 === -0) 	//true
Object.is(0, -0)		//false

가장 정확한 비교는 Object.is()

  • 대소 관계 비교 연산자 : > < >= <=

4. 삼항 조건 연산자

조건식 ? 조건식이 true일때 반환 값 : 조건식이 false일때 반환 값
삼항조건 연산자 표현식은 으로 평가할 수 있는 표현식인 문이다.

var x = 10;
var result = x % 2 ? '홀수' : '짝수";

console.log(result)		//짝수

5. 논리 , 쉼표, 그룹 연산자

  • 논리 연산자
    || && !
  • 쉼표 연산자
let x,y,z;

x = 1, y = 2, z = 3		//3
  • 그룹 연산자
    괄호안에 묶인 표현식을 먼저 평가

6. typeof 연산자

typeof ''              // -> "string"
typeof 1               // -> "number"
typeof NaN             // -> "number"
typeof true            // -> "boolean"
typeof undefined       // -> "undefined"
typeof Symbol()        // -> "symbol"
typeof null            // -> "object"
typeof []              // -> "object"
typeof {}              // -> "object"
typeof new Date()      // -> "object"
typeof /test/gi        // -> "object"
typeof function () {}  // -> "function"

값이 null인것을 확인할때는 일치 연산자 사용

var foo = null;

typeof foo === null; // -> false
foo === null;        // -> true

7. 지수 연산자 + Math.pow( )

2 ** 2;   // -> 4
2 ** 2.5; // -> 5.65685424949238
2 ** 0;   // -> 1
2 ** -2;  // -> 0.25

Math.pow(2, 2);   // -> 4
Math.pow(2, 2.5); // -> 5.65685424949238
Math.pow(2, 0);   // -> 1
Math.pow(2, -2);  // -> 0.25

// 지수 연산자의 결합 순서는 우항에서 좌항이다. 즉, 우결합성을 갖는다.
2 ** (3 ** 2); // -> 512
Math.pow(2, Math.pow(3, 2)); // -> 512
profile
즐기면서 정확하게 나아가는 웹프론트엔드 개발자 https://happhee-dev.tistory.com/ 로 이전하였습니다

0개의 댓글