Javascript Operator   자바스크립트 연산자

(2018-10-16)

연산자

1. 자바스크립트 기본 연산자

  ㅇ 단항 연산자
     -  `+` (단항 덧셈, 숫자로 강제 변환)
     -  `-` (단항 부정, 부호 바꿈)  

     -  증가 연산자 : `++` (전위 증가 또는 후위 증가)
     -  감소 연산자 : `--` (전위 감소 또는 후위 감소)
        .  `= ++i`(전위 연산자), `= i++`(후위 연산자) 비교
           ..  `= ++i` : 먼저 평가하고(먼저 1을 더함), 그 다음에 대입
           ..  `= i++` : 먼저 대입하고, 그 다음에 평가(후에 1을 더함)

  ㅇ 계산 연산자 또는 산술 연산자
     -  `*` (곱셈), `/` (나눗셈), `%` (나머지), `+` (덧셈), `-` (뺄셈)

     - 例)
        .  0/0            => NaN (계산 불능)
        .  "문자열" + 1   => "문자열1" (문자열 취급 변환)
        .  true + true    => 2   (논리값 타입을 1 또는 0으로 바꾸어 계산)
        .  1 + null       => 1   (null을 0으로 바꾸어 계산)
        .  1 + ""         => 1   (빈 문자열 ""을 0으로 바꾸어 계산)
        .  1 + undefinded => NaN (계산 불능, undefined를 NaN으로 간주)

  ㅇ 문자열 병합 연산자
     -  `+`

  ㅇ 산술 대입 연산자 (단축형)
     -  `+=` : 例) a += b => a = a + b
     -  `-=` : 例) a -= b => a = a - b 
     -  `*=` : 例) a *= b => a = a * b
     -  `/=` : 例) a /= b => a = a / b
     -  `%=` : 例) a %= b => a = a % b

  ㅇ 비트 연산자
     -  `&`, `|`, `^`, `~`

  ㅇ 할당/대입 연산자(assignment operator)
     -  `=`
  
  ㅇ 비교 연산자 
     - (느슨한 비교) :  `==`, `!=`, `>`, `<`, `>=`, `<=`
     - (엄격한 비교) :  `===` , `!==`

     * `==`, `===` 비교
        . `==`  : 우선, 수치로 형변환을 하고, 그 다음에 비교 과정을 수행함
        . `===` : 형변환을 수행하지 않고, 엄격한 비교 과정을 수행함

  ㅇ 논리 연산자
     - 논리곱 : `&&`
        . 例) a = b && c => 왼쪽 피연산자(b)가 true이면, 오른쪽 피연산자(c)를 반환, 
           .. (만일, 왼쪽 피연산자(b)가 false이면, 왼쪽 피연산자(b)를 반환)
     - 논리합 : `||`
        . 例) a = b || c => 왼쪽 피연산자(b)가 false이면, 오른쪽 피연산자(c)를 반환, 
           .. (만일, 왼쪽 피연산자(b)가 true이면, 왼쪽 피연산자(b)를 반환)
     * 例) 
        . age >= 18 && console.log("게임 허용"); // 성인이면, 게임 허용
        . age >= 18 || console.log("게임 불가"); // 미성년이면, 게일 불가
     - 논리부정 : `!`

  ㅇ 조건 연산자 (삼항 연산자) : ` ? : `
     -  [조건식] ? [참일 경우 반환값] : [거짓일 경우 반환값] 

  ㅇ 그룹 연산자 : `( )`
     - 계산 순서를 명시적으로 우선 지정


2. 자바스크립트 기타 연산자

  ㅇ new 연산자        : 새로운 객체를 생성하며 반환
  ㅇ typeof 연산자     : 데이터 타입을 조사하여 그 결과를 반환
  ㅇ instanceof 연산자 : 객체의 종류를 확인하여 그 결과를 반환
  ㅇ in 연산자         : 객체프로퍼티의 포함 여부를 확인
     - 어떤 프로퍼티객체에 포함되면 true, 미 포함이면 false 반환
        . 例) 프로퍼티명 in 객체명; => 평가 결과에 따라 true 또는 false 반환


3. 자바스크립트 연산자 우선순위

  ㅇ  1)  ()                               : 결합순서 없음
  ㅇ  2)  . , []                           : 왼쪽 → 오른쪽 결합순서,
         new 인수 있는 경우                : 결합순서 없음
  ㅇ  3)  () 함수호출                      : 왼쪽 → 오른쪽 결합순서,
         new 인수 없는 경우                : 오른쪽 → 왼쪽 결합순서
  ㅇ  4)  ++ (후위증가), -- (후위감소)     : 결합순서 없음
  ㅇ  5)  ! , ~ , + (단항덧셈), - (단항부정), typeof, void, delete, ++ (전위증가),
         -- (전위감소)                     : 오른쪽 → 왼쪽 결합순서
  ㅇ  6)  * , / , %                        : 왼쪽 → 오른쪽 결합순서
  ㅇ  7)  + , - , + (문자열병합)           : 왼쪽 → 오른쪽 결합순서
  ㅇ  8)  << , >> , >>>                    : 왼쪽 → 오른쪽 결합순서
  ㅇ  9)  < , <= , > , >= , in, instanceof : 왼쪽 → 오른쪽 결합순서
  ㅇ 10)  == , != , === , !==              : 왼쪽 → 오른쪽 결합순서
  ㅇ 11)  &                                : 왼쪽 → 오른쪽 결합순서
  ㅇ 12)  ^                                : 왼쪽 → 오른쪽 결합순서
  ㅇ 13)  |                                : 왼쪽 → 오른쪽 결합순서
  ㅇ 14)  &&                               : 왼쪽 → 오른쪽 결합순서
  ㅇ 15)  ||                               : 왼쪽 → 오른쪽 결합순서
  ㅇ 16)  ? :                              : 오른쪽 → 왼쪽 결합순서
  ㅇ 17)  yield, yield*                    : 오른쪽 → 왼쪽 결합순서
  ㅇ 18)  = , += , *= , /= , %= , <<= , >>= , >>>= , 
          &= , ^= , |=                     : 오른쪽 → 왼쪽 결합순서
  ㅇ 19)  ...                              : 결합순서 없음
  ㅇ 20)  ,                                : 왼쪽 → 오른쪽 결합순서


4. 자바스크립트 연산자 부수효과

  ㅇ =(대입연산자), ++(증가연산자), --(감소연산자), delete 들은,
     연산 후에 변수 자신의 값을 바꾸는 부수효과가 있게 됨


[자바스크립트] 1. JavaScript 2. JS 연산자 3. 기초 문법
[JS 변수,타입] [JS 이벤트] [JS 함수] [JS 객체] [JS 배열] [JS 활용] [jQuery]
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램,프로그래밍
      1.   프로그래밍 언어론
      2.   객체지향
      3.   자료구조
      4.   알고리즘
      5.   자료표현(알파벳/코드)
      6.   시스템 소프트웨어
      7.   프로그래밍언어 종류
            1. 프로그래밍 언어
            2. 어셈블리언어
        1.   C
        2.   자바(Java)
        3.   자바스크립트
              1. JavaScript
              2. JS 연산자
              3. 기초 문법
          1.   JS 변수,타입
          2.   JS 이벤트
          3.   JS 함수
          4.   JS 객체
          5.   JS 배열
          6.   JS 활용
          7.   jQuery
        4.   PHP
        5.   (기타 언어)
      8.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록(시험중)     참고문헌