<그냥하자> JavaScript (2) 연산자 & 데이터타입

.·2024년 7월 3일
0

출처 : 인프런 얄팍한 코딩사전

자바스크립트는 동적자료형으로 변수/상수 등 데이터가 들어갈 곳에 자료형 제한이 없다. 여기서 자료형은 프로그램에서 사용되는 데이터의 종류이며 숫자, 텍스트, 참/거짓 등이 있다.

연산자

연산자(operator)는 사칙연산 등 셈을 하거나 논리 연산, 할당 등을 위한 기호(symbol)

사칙연산은 다른 컴퓨터 언어와 비슷한 거 같다.

비교 연산자

  • boolean 을 반환
  • == : 자료형에 관계없이 같은(값으로 치환될 수 있는) 값임
    • 반대 : !=
  • === : 자료형도 값도 같음
    • 반대 : !==
  • > , >=, < , <=
    • 오른쪽보다 크(거나 같)다 / 작(거나 같)

=== 는 엄격한 동등 연산자로 데이터 타입까지 일치하는지를 의미한다.

증감 연산자 / boolean

~ ++ vs ++ ~

  • 둘 모두 값을 증가시킴
    • -- : 감소
  • ~ ++ : 값을 증가시키지 않은 채 사용
  • ++ ~ : 값을 증가시킨 채 사용

eg.

AND & OR

  • && : AND - 양쪽이 모두 true 일 때만 true 반환
  • || : OR - 한쪽만 truetrue 반환

eg

x && y : x가 참이면 y를 반환하고, 거짓이면 x를 반환한다.
x || y : x가 참이면 x를 반환하고, 거짓이면 y를 반환한다.

삼항 연산자

(조건) ? (참일 시 값) : (거짓일 시 값)

그외 연산자

  1. 쉼표 연산자

    왼쪽부터 차례대로 실행, () 는 마지막 것 반환

  1. ?? - null 병합 연산자

    ||와 달리, falsy가 아닌 null 또는 undefined만 대체

활용 예시

  1. 연산자의 우선순위
순위연사자 들
1!, +, -, ++, --, typeof
2**
3*, /, %
4+, -
5<, <=, >, >=
6==, !=, ===, !==
7&&
8Logical OR
9=, +=, -=, *=, /=, %=, **=, &&=,
10,

데이터 타입

Boolean : 논리적 요소로 true 와 false 2가지의 값을 가짐, 반환값
Number : 123,3.14 등 정수와 부동소수점 숫자, JS에서는 정수와 실수의 구분이 없음, 더 큰 정수는 Biglnt
String:텍스트 데이터, 큰따옴표, 작은따옴표, 또는 백틱으로 둘러싸인 텍스트 데이터 (백틴은 ``, mac에서는 option+₩ )

Undefined : 변수가 할당되지 않았거나 값을 알 수 없는 경우, 부여되지 않을 undefined도 값이다.
아무것도 반환하지 않는 구문또한 undefined로 반환된다.
eg. let x = 1;
console.log(1); 이러한 구조도 1이 나온후 반환되지 않기 때문에 undefined가 나오는 것

Null : 아무런 값이 없음을 명시적으로 정의한 경우, null도 값임.

typeof 가 objec를 반환

Biglnt : Number의 할당 범위를 넘는 큰 정수
Symbol : 익명의 객체 속성을 만들 수 있음
Object : 할당된 값 또는 속성을 다수 가질 수 있는 형태

{ 
	lex x= '올해' + 2000 + 25;
    console.log(x);
}

>>> 올해200024 

숫자와 문자열이 함께 나오는 경우 숫자는 문자열로 취급되어 문자열에서는 값을 연결해준다.

데이터타입을 확인하기 위해 typeof 연산자 사용

{
	let x = ture;
    console.log(typeof x);
}

>>>>> boolean

자바스크립트는 동적 타입을 가진언어. 특정 값이 할당된 변수에, 그와 다른 자료형의 값을 넣는 것이 가능하며 자유롭지만 그만큼 자료형 관련 오류들에 취약하다.

자바스크립트는 대표적인 인터프리터언어이다. 때문에 컴파일언어는 컴파일하면서 자료형 오류도 검수하게 되지만, 인터프리터 언어는 자료형이 다름에 따라 오류가 일어난다. 컴파일을 하지않고 사용자한테 바로 가져다주기 때문.

추가로 '1' + 1 처럼 서로 데이터 타입이 다르면 논리오류가 발생된다. '1'문자열이기 때문에 그 뒤 숫자형이 오게 되어도 문자형으로 인식되어 그대로 이어 붙여지게 된다. 이러한 오류는 계산 같은 프로그램에는 치명적일 것으로 보인다.

profile
해야 되는 일이 하고 싶은 일로

0개의 댓글