알고리즘 모의고사가 끝났다
공부한 범위내에서 변형한 수준이라 쉽게 풀었다.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)까지 비교한다
요약 : 형변환에 의한 예상치 못한 오류를 피하기 위해, 일치연산자(===)를 사용하자.
'항해99' 카테고리의 다른 글
2022-05-18 TIL 항해 10일차(실행 컨텍스트,TDZ,호이스팅,스코프) + 과제 (0) | 2022.05.19 |
---|---|
2022-05-18 TIL 항해 10일차 (원시형과 참조형, 불변 객체) (0) | 2022.05.19 |
2022-05-15 WIL(로그인과 회원가입 , 메소드) (0) | 2022.05.15 |
2022-05-13 TIL 항해 6일차(알고리즘, cs지식 책 ) (4) | 2022.05.15 |
2022-05-13 TIL 항해 5일차(알고리즘시작, JS reduce) (2) | 2022.05.14 |