[JS] 연산자

소연·2023년 11월 30일

업로드중..

일러두기

  • 본 글은 ‘모던 자바스크립트 Deep Dive’ 07장, ‘연산자’를 참고하여 작성되었습니다.
  • 글에 틀린 점이 있다면 댓글로 피드백 부탁드립니다 :)

연산자


연산자는 하나 이상의 표현식을 대상으로 연산을 수행해 값을 만든다
연산의 결과가 ‘값’이라는 것이 중요

  • 연산의 결과가 어떤 타입의 값인지 위주로 학습

산술 연산자


연산 결과로 숫자값을 반환하고, 피연산자의 개수에 따라 이항, 단한 산술 연산자로 구분할 수 있음

이항 산술 연산자

연산 결과: Number
사칙연산 (+,-,/,*) + 나머지(%)

  • 덧셈, 뺄셈, 나눗셈, 곱셈, 나머지 구하기 등의 연산은 항상 두 가지 수 이상이 있어야 연산 가능

단항 산술 연산자

연산 결과: Number ++,--, +, -

++, -- 의 경우 연산자의 위치에 따라 의미가 다름

var x = 5; // 5
var result; // undefined
// 선할당 후증가 
result = x++; // result = x; x = x + 1;
// 선증가 후할당
result = ++x; // x =  x + 1; result = x;
  • 아무 효과 없는 + 연산자? 피연산자를 숫자 타입으로 변경하여 반환한다는 효과가 있다는 점을 활용하면,
    var x = 'string';
    var y = '1'
    console.log(+x) // NaN
    console.log(+y) // 1
    let myNumber = 255;
    
    +myNumber.toFixed(3); // toFixed 메서드의 결과는 숫자가 아니기 때문에 + 연산자 사용해서 숫자형으로 변경 
    // 동일한 표현으로, number(myNumber.toFixed(3)); 

문자열 연결 연산자

연산 결과: String
+ 피연산자 중 문자열이 하나 이상 있을 경우 산술 연산이 아니라, 문자열 연결 연산자로 동작


할당 연산자


연산 결과

  • 문자열 연결 연산자 이외의 연산: Number
  • 문자열 연결 연산자 += 연산: String
// 문자열 연결 연산자
str += 'Lee'; // str = str + 'Lee';
console.log(str); // 'My name is Lee'
  • 종류: =, +=, -=, *=, /=, %/

할당문은 표현식인 문이다.

var a, b, c;

// 연쇄 할당. 오른쪽에서 왼쪽으로 진행.
// ① c = 0 : 0으로 평가된다
// ② b = 0 : 0으로 평가된다
// ③ a = 0 : 0으로 평가된다
a = b = c = 0;

console.log(a, b, c); // 0 0 0


비교 연산자


연산 결과: boolean

동등/일치 비교 연산자

동등 비교 연산자: ==(암묵적 형 변환이 일어난다, 결과 예측이 어렵다.)
일치 비교 연산자: ===

대소 관계 비교 연산자

연산자 종류: >, <, >=, <=




삼항 조건 연산자


연산 결과: 피연산자 중 하나

var result = (조건식) ? (조건식이 true일 때 반환할 값) : (조건식이 false일 때 반환할 값)

조건식은 불리언 타입으로 평가되어야 하며, 만약 불리언 타입이 아니라면 암묵적 형 변환을 통해 불리언 값이 된다.



논리 연산자


  • 논리합, 논리곱 연산자

    연산결과: 피연산자 중 하나

    // 논리합(||) 연산자
    true || true;   // -> true
    true || false;  // -> true
    false || true;  // -> true
    false || false; // -> false
    
    // 논리곱(&&) 연산자
    true && true;   // -> true
    true && false;  // -> false
    false && true;  // -> false
    false && false; // -> false
    
    // 논리 부정(!) 연산자
    !true;  // -> false
    !false; // -> true
  • 논리 부정 연산자 !

    연산결과: Boolean

    ! 의 연산 결과는 항상 불리언 값이라는 점을 활용,

    const didLogin = profile.id ? true : false;
    const didLogin = !!profile.id // 부정의 부정 이꼬르 긍정 

0개의 댓글