본문 바로가기

항해99

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)까지 비교한다

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

댓글

2022-05-13 TIL 항해 6일차(알고리즘, cs지식 책 )

2022. 5. 15.

오늘은 9번부터 16번까지 총 8개의 문제를 풀었다.

특히 생각이 나는 문제는 2016년의 월,일을 입력하면 요일이 나오는 난이도 중하 짜리 문제였다.

new Date(날짜문자열).getDay  메소드를 이용하여 풀기도 

심심하고 배운것들을 응용하고자 if문과 딕셔너리를 이용하여 풀어보기도 했다.

 

그리고 팀원들끼리 각자 맡은 문제를 화면공유하는 상태에서 다 지우고 다시 풀면서 설명하는 시간을 가졌는데

팀원분들의 실력이 쑥쑥 느시는것 같아 기분이 좋았고 동기부여도 되었다.

또한 1일 1로그 100일완성 IT지식책을 항해99로 부터 받아서 자기전에 조금씩 읽는 습관을 들이려 한다.

자연스러운 합석

오늘도 수고했습니다! 

댓글