7. 연산자

2022. 11. 27. 00:53·Tech Books & Lectures/Javascript_Modern JS Deep dive

7.1 산술 연산자

7.1.2 단항 산술 연산자

이항 산술 연산자와는 달리 증가/감소(++/--) 연산자는 피연산자의 값을 변경하는 부수효과가 있다. 즉, 증가/감소 연산을 하면 피연산자의 값을 변경하는 암묵적인 할당이 이뤄진다. 예를 들어,

피연산자는 연산의 대상이 되어야 하므로 값으로 평가할 수 있어야 한다.

  • Infinity: 양의 무한대
  • -Infinity: 음의 무한대
  • NaN: 산술 연산 불가(not-a-number)
    console.log(10 / 0); //Infinity
    console.log(10 / -0); // -Infinity
    console.log(1 * "String"); //Nan

7.1.3 문자열 연결 연산자

연산자는 피연산자 중 하나 이상의 문자열인 경우 문자열 연결 연산자로 동작한다.

이 예제에서 주목할 것은 개발자의 의도와는 상관없이 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되기도 한다는 것이다. 이를 암묵적 타입 변환(implicit coercion) 또는 타입 강제 변환(type coercion) 이라고 한다.

7.3 비교 연산자

7.4.2 동등/일치 비교 연산자

동등 비교(==) 연산자는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다. 일치 비교(===) 연산자는 좌항과 우항의 피연산자가 타입도 같고 값도 같은 경우에 한하여 true 를 반환한다. NaN 은 자신과 일치하지 않는 유일한 값이다.

NaN === NaN // -> false

7.8 typeof 연산자

typeof 연산자로 null 값을 연산해 보면 "null" 이 아닌 "object" 를 반환한다. 이것은 자바스크립트의 첫 번째 버전의 버그다. 하지만 기존 코드에 영향을 줄 수 있기 때문에 아직까지 수정되지 못하고 있다. 따라서 값이 null 타입인지 확인할 때는 typeof 연산자를 사용하지 말고 일치 연산자(===) 를 사용하자.

7.10 그 외의 연산자

7.12 연산자 우선순위

 

'Tech Books & Lectures > Javascript_Modern JS Deep dive' 카테고리의 다른 글

10. 객체 리터럴  (0) 2022.11.27
9. 타입 변환과 단축 평가  (0) 2022.11.27
6. 데이터 타입  (1) 2022.11.27
5. 표현식과 문  (1) 2022.11.27
4. 변수  (0) 2022.11.27
'Tech Books & Lectures/Javascript_Modern JS Deep dive' 카테고리의 다른 글
  • 10. 객체 리터럴
  • 9. 타입 변환과 단축 평가
  • 6. 데이터 타입
  • 5. 표현식과 문
JTB
JTB
웹/앱 개발 정보를 공유하고 있습니다.
  • JTB
    JTechBlog
    JTB
  • 전체
    오늘
    어제
    • All About Programming;) N
      • Computer Science
        • Terminology and Concepts
        • Network
        • Operating System
        • Database
        • Data Structure
      • Frontend
        • Javascript Essentials
        • Perfomance Optimization
        • JS Patterns
        • Next.js
        • Flutter
      • Backend
        • Node.js
      • DevOps
        • Docker & Kubernetes
      • Coding Test N
        • LeetCode N
        • Programmers
      • Tech Books & Lectures
        • Javascript_Modern JS Deep d..
        • Network_IT 엔지니어를 위한 네트워크 입문
      • Projects
        • PolyLingo_2025
        • Build Your Body_2024
        • JStargram_2021
        • Covid19 Tracker_2021
        • JPortfolio_2021
      • BootCamp_Codestates
        • TIL
        • TILookCloser
        • Pre Tech Blog
        • IM Tech Blog
        • Daily Issues and DeBugging
        • First Project
        • Final Project
        • Sprint Review
        • Good to Know
        • Socrative Review
        • HTML & CSS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 글쓰기
    • 관리
  • 공지사항

  • 인기 글

  • 태그

    testing
    Threads and Multithreading
    need a database
    자바스크립트
    Network
    Time complexity and Space complexity
    Binary Tree BFS
    Shared resources
    모던 자바스크립트 Deep Dive
    스코프
    DOM
    딥다이브
    CPU scheduling algorithm
    자바스크립트 딥다이브
    TCP/IP
    leetcode
    VoiceJournal
    structure of os
    How memory manage data
    JavaScript
    polylingo
    Operating System
    mobile app
    이벤트
    커리어
    database
    프론트엔드 성능 최적화 가이드
    Data Structure
    indie hacker
    js pattern
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
JTB
7. 연산자
상단으로

티스토리툴바