Gio_J
Gio's dev archive
Gio_J
전체 방문자
오늘
어제
  • 분류 전체보기 (20)
    • PS (10)
      • BOJ (8)
      • Programmers (2)
    • CS (0)
      • Operating System (0)
      • Network (0)
      • Data Base (0)
    • Data Structure (0)
    • Algorithm (0)
    • JavaScript (9)
      • DeepDive (9)
    • React (0)
    • Tools (1)

블로그 메뉴

  • 홈
  • GitHub
  • solved
  • 태그
  • 방명록

공지사항

인기 글

태그

  • vscode
  • c++
  • JS
  • javascript
  • programmers
  • boj
  • DeepDive
  • PS
  • Visual Studio Code

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Gio_J

Gio's dev archive

JavaScript/DeepDive

[JavaScript] 표현식과 연산자

2022. 7. 7. 19:06

이 글은 자바스크립트를 저 나름대로 공부하고 작성하는 글로

잘못된 내용이 존재할 수 있습니다. 잘못된 내용을 발견하면 언제든 지적 부탁드립니다.

 

 

무언가를 공부할 때 용어를 정확히 이해 하고 있는 것이 좋다. 

용어를 정확히 이해 하고 있어야 다른 이와 함께 일이 하거나 할때 상호 오해의 소지가 없고,

또한 어떤 의미인지 스스로 정확히 인지하여 조금 더 깊은 이해를 할 수 있다.

 

값(value)

 

값이란 리터럴, 표현식등이 평가되어 생성된 결과이다.

 

리터럴(literal)

 

리터럴이란 문자또는 기호로 사용해 값을 생성하는 것으로 숫자 1, 2, 3 문자 'Hello World'등 이 자체로 값을 나타낸다.

 

문(statement)

 

문이란 프로그램을 구성하는 기본단위이자 최소 실행단위이다.

 

표현식(expression)

 

표현식이란 값으로 평가될 수 있는 문으로, 표현식이 평가되어 새로운 값을 생성하거나 기존 값을 참조한다.

100 // 리터럴 또한 값으로 평가되므로 표현식!

let variable = 50 + 50; // 50 + 50 => 100 으로 평가됨 표현식!

variable // 100으로 평가됨 표현식!

// 이 외에도 많은 표현식이 존재한다.

 

 

연산자 (operator)

연산자란? 피연산자(연산의 대상)을 특정한 연산을 통해 새로운 값으로 만들어 내는 것이다.

산술, 할당, 비교 논리, 타입, 지수 연산등이 존재 한다.

 

자바스크립트에서는 C 계열 언어들이 지원하는 기본연산들을 모두 지원하는데 (c/c++ java...등) 차이가 존재하는 것은

비교 연산자와 지수 연산자 그리고 산술 연산자에서 나눗셈이다.

 

자바스크립트에서 나눗셈 연산자는 기본적으로 숫자타입이 모두 실수이므로 정수형을 나눴을 때 몫을 나타내는 다른 정적타입 언어와 달리

실수값을 뱉어낸다. ex) 3 / 2 -> 1.5

 

지수 연산자는 파이썬에는 존재하나 일반적인 정적타입 언어에서는 연산자 자체로는 제공하지 않는 것인데 ** 형태로 사용된다.

console.log(5**3) // 5^3 = 125

 

 

비교 연산자

 

자바스크립트에는 다른 언어들의 달리 비교 연산자 === 와 !== 가 존재한다.

기본적으로 == (동등 비교 연산자) 와 != (부동등 비교 연산자)는 피연산자 좌항 우항을 비교 할때 암묵적인 타입 변환을 진행한 후

일치 여부를 비교하게 되는데 따라서 타입이 달라도 값이 같을 경우 == 는 true 을 반환하고  != 는 값이 다를 경우 true를 반환한다.

 

=== (일치 비교),  !== (불일치 비교) 라고 하며, 이는 값과 타입 모두 비교의 대상으로 하는 연산자이다.

5 == '5' // true

5 === '5' // false

 

 

'JavaScript > DeepDive' 카테고리의 다른 글

[JavaScript] 타입변환과 단축평가  (0) 2022.07.14
[JavaScript] 원시타입과 객체타입의 차이  (0) 2022.07.13
[JavaScript] 제어문  (0) 2022.07.07
[JavaScript] 데이터 타입  (0) 2022.07.07
[JavaScript] 변수  (0) 2022.07.07
    'JavaScript/DeepDive' 카테고리의 다른 글
    • [JavaScript] 원시타입과 객체타입의 차이
    • [JavaScript] 제어문
    • [JavaScript] 데이터 타입
    • [JavaScript] 변수
    Gio_J
    Gio_J
    dev archive

    티스토리툴바