본문 바로가기

javascript

2022-05-17 TIL 항해 9일차(Javascript의 자료형과 특성)

2022. 5. 18.

알고리즘 모의고사가 끝났다
공부한 범위내에서 변형한 수준이라 쉽게 풀었다.bb

 

알고리즘을 공부하면서 자바스크립트에 대한 공부도 같이 하라고 주제를 던져주셨는데,

주제에 대해서 공부한 것들을 정리해 보았다.

 

" JavaScript의 자료형과 JavaScript만의 특성은 무엇일까? "


 

#1 Javascript 자료형의 종류

JavaScript의 타입은 원시 값과 객체로 나눠진다.

-원시 값(Primitive type)  

1.Number : 따옴표 없이 표기한 숫자가 해당

2.String : 작은따옴표(') 혹은 큰따옴표(")로 묶어 나타낸 문자가 해당

3.boolean : 참(true)과 거짓(false)이 여기에 해당

4.Undefined : 변수가 정의되었으나 아무 값도 할당받지 않은 상태

5.Null : 변수가 정의되고 빈 값을 할당 받은 상태

 

*null은 의도적으로 쓰인다.

'어떤 값이 비어있음'을 의도적으로 표현할때는 undefined 대신 null을 쓴다.

 

-객체( Reference type​)

1.object(객체) 함수와 속성이 함께 포함된 유형

 

 

#2 느슨한 타입(loosely typed)의 동적(dynamic) 언어

-자바스크립트는 느슨한 타입(loosely typed) 혹은 동적(dynamic) 언어 이기떄문에, 타입을 명시할 필요가 없다.

타입은 자바스크립트 내부에서 알아서 파악되기 떄문이다.

-자바스크립트(느슨한 타입 혹은 동적 언어) 와 자바(강력한 타입 혹은 정적 언어)를 비교해보면

 

*javascriptlet a = 123  //typeof(a) === Numberlet b = 'bbb' //typeof(b) === String

 

*java(변수선언시 , 타입을 같이 명시해 줘야함)int a = 1String b = 'bbb'

 

자바스크립트의 이 특성이 편할 수 있다 생각하지만 형변환에 의한 느슨한 타입 체크 때문에 예상치 못한 오류가 발생할 수 있음

 

*형 변환 : 숫자타입에 문자열을 더하면 결과가 문자열이 되고 문자열에 숫자를 곱하면 숫자타입이 되는 특성이다.

console.log(1+1) //2
console.log(1+1+'1') //21
console.log('1'+'1') // 11

느슨한 타입(loosely typed) 혹은 동적(dynamic) 언어의 문제점을 일치연산자 사용을 이용하여 방지할 수 있다.

let a = 1   // 'Number'
let b = '1'  // 'String'

// ==(동등연산자 사용)
console.log(a == b) // true
//값만 비교한다

// ===(일치연산자 사용)
console.log( a === b ) //false
//값과 값의 종류(Data Type)까지 비교한다

요약 : 형변환에 의한 예상치 못한 오류를 피하기 위해, 일치연산자(===)를 사용하자.

댓글