본문 바로가기
Tech/Javascript

자바스크립트 프로그래밍 3장 (언어의 기초) - 3.5

by uyoo 2020. 4. 29.
「프론트엔드 개발자를 위한 자바스크립트 프로그래밍」 서적을 참조했으며, 3장에 대한 요약 및 정리를 진행하려고 한다.

 

연산자

  • 단항 연산자: 단 하나의 값에만 적용되는 연산자 ex) 증감 연산자
  • 비트 연산자: 메모리에서 숫자를 표현하는 비트를 직접 조작하는 저수준 연산자
    • 32bit 중 1bit = 부호(0: 양수, 1: 음수), 31bit = 숫자

    • NOT(~) : 피연산자의 1의 보수, 숫자(a)의 부호를 바꾼 후 1을 뺀 결과값
    • AND(&) : a와 b 모두 1이어야 1
    • OR(|) : a와 b 중 하나라도 1이면 1
    • XOR(^) : a와 b가 같으면 0, 다르면 1 (= OR 연산 이후 1을 뺀 결과값)


    • 왼쪽 시프트(<<)
      • 좌항의 모든 비트를 우항의 숫자만큼 왼쪽으로 움직임
      • 피연산자의 부호 유지
    • 부호 있는 오른쪽 시프트(>>)
      • 비트를 오른쪽으로 움직임
      • 부호는 그대로 유지
      • 오른쪽으로 움직일 때, 빈 비트가 생기는데 부호 비트(32bit 부분) 다음부터 0으로 채운다
    • 부호 없는 오른쪽 시프트(>>>)
      • 양수인 경우는 부호 있는 오른쪽 시프트와 같음
      • 음수인 경우는 부호 비트가 고려되지 않기 때문에 결과값이 아예 달라짐
  • 불리언 연산자
    • NOT 연산자 (!)
      • ECMAScript 모든 값에 적용 가능
      • 피연산자를 불리언 값으로 변환한 뒤 그 결과를 부정한다
        • 객체 -> false
        • 빈 문자열 -> true
        • 비어있지 않은 문자열 -> false
        • 숫자 0 -> true
        • 0이 아닌 숫자(Infinity 포함) -> false
        • null -> true
        • undefined -> true
        • NaN -> true
      • 값을 불리언 타입으로 바꾸는데도 유용

    • AND 연산자 (&&)
      • 첫번째 조건이 false라면 그 다음 조건은 보지 않는다
    • OR 연산자 (||)
      • 첫번째 조건이 true라면 그 다음 조건은 보지 않는다

  • 덧셈 연산자(p.78~)
    • 피연산자가 모두 문자열 -> 두 번째 문자열을 첫 번째 문자열에 합침
    • 피연산자 중 하나가 문자열 -> 다른 피연산자를 문자열로 변환하고 두 문자를 합침
    • 괄호를 넣어줌으로써 인터프리터에서 괄호 안을 먼저 계산하도록 하여 발생하는 오류를 최소화
  • 뺄셈 연산자(P.80~)
  • 관계 연산자(p.81~)
    • 미만
    • 초과
    • 이상
    • 이하

  • 동일 연산자(p.83~)
    • ==
    • 자동으로 타입 변환이 이루어짐 (타입 강제)
  • 일치 연산자(p.85)
    • ===
    • 타입 변환이 이루어지지 않음