본문 바로가기

학원/복기

[JavaScript] 연산자 / 형변환(자동 형변환, 강제 형변환)

자바스크립트 연산자


연산자 우선 순위에 의한 분류

최우선 연산자 : (), [], {}, .
단항 연산자 : +, -, ++, --, !, new, typeof

  • new : 객체 생성하기 위한 연산자
  • typeof : 변수의 자료형을 알아내기 위해 사용하는 연산자

산술 연산자 : *, /, %, +, -
관계 연산자 : >, >=, <, <=, ==, !=, ===, !== 
논리 연산자 : &&,||
삼항 연산자 : 조건식?참값:거짓값
대입 연산자 : =, *=, /=, %=, +=, -=


관계 연산자

== 연산자 또는 != 연산자는 자료형에 상관없이 값만 비교하여 비교결과를 제공한다.  

num="123";
alert("비교 결과 = " +(num==123));//비교결과 = true
alert("비교 결과 = " +(num!=123));//비교결과 = false

 

=== 연산자 또는 !== 연산자는 자료형과 값을 모두 비교하여 비교결과를 제공한다. 

num="123";	
alert("비교 결과 = " +(num===123));//비교결과 = false
alert("비교 결과 = " +(num!==123));//비교결과 = true

자바스크립트 형변환 


자동 형변환: 연산자에 의해 값의 자료형이 자동으로 변환되는 것 
강제 형변환: 자료형 관련 함수에 의해 값의 자료형을 강제로 변환시키는 것


 

자동형변환


+ 연산자는 두 피연산자의 자료형이 숫자형인 경우, 산술 연산 처리한다.

alert(20+10);//30

 

+ 연산자는 두 피연산자 중 하나의 자료형이 문자형인 경우 모든 피연산자를 문자값으로 변환하여 결합 처리한다.

alert("20"+10);//2010
alert(20+"10");//2010

 

+ 연산자를 제외한 산술 연산자는 모든 피연산자를 무조건 숫자값으로 변환하여 산술 처리한다.

alert(20*10);//200
alert("20"*10);//200

alert(20-10);//10
alert(20-"10");//10
alert("20"-10);//10
alert("20"-"10");//10

 

NaN(Not a Number)

 : 숫자형으로 변환할 수 없는 경우 제공되는 상수 
NaN은 잘못된 입력으로 인해 계산을 할 수 없음을 나타내는 기호이다.
→ NaN 상수를 연산 처리하면 NaN이라는 결과를 제공한다. 

alert(20-"abc");//NaN

 

논리값을 산술 연산한 경우 [false]는 영어로 변환되고 [true]는 1로 변환되어 연산 처리된다.
→ 숫자값을 비교 연산한 경우 0은 [false]로 변환되고 0 이외의 숫자값은 [true]로 변환되어 연산처리된다.

alert(20+true);//21

 

강제형변환

Number(value) : 매개변수로 전달받은 값을 숫자값으로 변환하여 반환하는 함수 
String(value) : 매개변수로 전달받은 값을 문자값으로 변환하여 반환하는 함수 
Boolean(value) : 매개변수로 전달받은 값을 논리값으로 변환하여 반환하는 함수 

alert("20"+10);//2010 - 문자값 결합 
alert(Number("20")+10);//30 - 강제 형변환을 이용해 산술 연산