1 minute read

연산자

연산자

  • 연산의 사전적 의미
    • 규칙에 따라 계산하여 값을 구함
  • 연산자(Operator) 형태
    • +, -, *, /, %
    • <, <= , > , >=
    • ==, !=, ===, !==
    • 콤마, typeof, delete, void

표현식

  • 표현식 형태
    • 1 + 2
    • var total = 1 + 2;

해석, 실행 순서

  • 해석이란?
    • JS코드를 기계어로 바꾸는 것, Compile
  • 실행순서
    • var result = 1 + 2 + 6;
    • = 왼족의 표현식 평가
    • = 오른쪽의 표현식 평가
    • = 오른쪽 표현식의 평가 결과를 왼쪽 표현식 평가 결과에 할당

+ 연산자

  • 자바스크립트는 웹에 띄워지는 것이기에 최대한 오류가 나지 않으려고한다.
  • 그래서 정수 + 문저열 일 경우 정수를 형 변환을 하여 concat 한다.
    var value = 1 + 5 + "ABC";
    Console.log(value);
    /*6ABC*/
    /*연산자의 오른쪽 부분 연산 후, 왼쪽 처리 하므로*/
    

    숫자로 변환

type value return value
Undefined NaN
Null +0
Boolean true: 1, false: 0
String if value is num, then calc num. but + op concat
Console.log(10 + "123"); /*10123*/
Console.log(123 - "23"); /*100*/

산술 연산자

  • (-,*,/) 연산자
    • 왼쪽 표현식 평가 결과에서 오른쪽 표현식 평가 결과를 연산한다.
    • string 타입이지만, 값이 숫자이면 Number 타입으로 변환하여 계산
    • 숫자가 아닌 string 타입일때 ,NaN

단한 + 연산자

  • 형태 : + value
  • 값을 Number 타입으로 변환
  • 코드 가독성
    • +를 더하기로 착각할 수도 있음
    • Number()도 기능 같음
var value = "7";
Console.log(typeof value); /*string*/
Console.log(typeof +value); /*number*/
Console.log(typeof Number(value)); /*number*/

유니코드

  • unicode
    • 세계의 모든 문자를 통합하여 코드화
    • 연어, 이모지 등
    • 코드 값을 코드 포인트 라고 부름
    • 0000~FFFF, 10000~1FFFF 값에 문자 매핑
    • 유니코드 컨소시엄 (시이트)
  • 표기 방법
    • u와 숫자 형태 : u0031은 숫자 1
    • JS 는 u앞에 역슬래시() 작성
    • 역슬래시()를 문자로 표시하려면 역슬래시(\) 2개 작성
    • ES6에서 표기 방법 추가됨
        Console.log("\u0031"); /* 1 */
        Console.log("\u1100"); /* ㄱ */
        Console.log("\\u1100"); /* \u1100 */
      
  • UTF
    • Unicode Transformation Format
    • 유니코드의 코드 포인트를 매핑하는 방법
    • UTF-8, UTF-16, UTF-32 로 표기
    • <meta charset= "utf-8">
    • UTF-8은 8비트로 코드 포인트 매핑
    • 8비트 인코딩이라고 부름

== 연산자

  • 값만 같으면 된다.
    Console.log( 1 == "1" ) /*true*/
    

!= 연산자

  • 값, 타입이 모두 다르면 된다.
    Console.log( 1 == "1" ) /*true*/
    

    === 연산자

  • 값, 타입 둘다 일치 해야함
    Console.log( 1 === "1" ) /*false*/
    

!== 연산자

  • 값 또는 타입 다르면 true
    Console.log( 1 === "1" ) /*false*/
    

콤마 연산자

  • 표현식 분리 가능
    var a = 1, b =2;
    

조건 연산자

  • 3항 연산자
    Console.log(1 == "1" ? "같음" : "다름"); /*같음*/
    Console.log(1 === "1" ? "같음" : "다름"); /*다름*/