Node.js 과제

유승완·2022년 5월 19일
0

항해99

목록 보기
2/4

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

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

JavaScript는 느슨한 타입(loosely typed)의 동적(dynamic) 언어입니다. JavaScript의 변수는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당 (및 재할당) 가능합니다.

-- var는 재선언,재할당 모두가능, let은 재할당만 가능, const는 모두 불가하다.

동적언어는 사용자가 주는 정보를 토대로 웹페이지가 유동적으로 변경할 수 있게 만들어주는 언어다. 동적언어인 javascript로 코드를 만들면 만든 코드에 따라 어떤 행동을 했을 때 경고문이 보여진다거나 버튼을 눌렀을 때 웹페이지를 어두워지게 만들어지는 등 사용자가 주는 정보에따라 웹페이지를 변화 시킬 수 있다.

JavaScript 형변환

자바스크립트는 타입이 매우 유연한 언어이다. 때문에 때로는 자바스크립트 엔진이 필요에 따라 ‘암시적변환’ 을 혹은 개발자의 의도에 따라 ‘명시적변환’ 을 실행한다

암시적변환
암시적 변환이란 자바스크립트 엔진이 필요에 따라 자동으로 데이터타입을 변환시키는 것이다.

산술 연산자
더하기(+) 연산자는 숫자보다 문자열이 우선시 되기때문에, 숫자형이 문자형을 만나면 문자형으로 변환하여 연산된다. (문자 > 숫자)

명시적변환
명시적변환이란 개발자가 의도를 가지고 데이터타입을 변환시키는 것이다.

타입을 변경하는 기본적인 방법은 Object(), Number(), String(), Boolean() 와 같은 함수를 이용하는데 new 연산자가 없다면 사용한 함수는 타입을 변환하는 함수로써 사용된다.

느슨한 타입(loosely typed)의 동적(dynamic) 언어의 문제점은 무엇이고 보완할 수 있는 방법에는 무엇이 있을지 생각해보세요.

객체지향 프로그래밍에 익숙한 개발자들을 혼란스럽게 하여 코드의 복잡도를 높이고 디버그가 증가하는 문제의 원인이 되었습니다. 이러한 문제를 극복하고자 JavaScript의 대체 언어가 등장하였는데 그 중 하나가 바로 TypeScript입니다.
TypeScript는 JavaScript의 상위확장(Superset) 언어로써 정적 타이핑 지원, ES(ECMAScript)6의 클래스와 모듈의 지원 및 ES7의 데코레이터 등을 지원합니다. JavaScript의 상위 집합이므로 기존의 JavaScript 문법을 그대로 사용가능하며, NodeJS의 npm 패키지들의 사용이 가능합니다. 또한 타입을 명확하게 명시하여 개발자가 의도한 변수나 함수의 목적을 분명하게 전달할 수 있고 이를 통하여 코드 자동 완성이나 잘못된 변수/함수 사용에 대한 에러 알림과 같은 풍부한 피드백을 받을 수 있습니다.

==, ===

=='와 '===' 연산자의 주된 차이점은, 예를 들어, 숫자를 숫자 리터럴과 비교하면, '=='는 그것을 허용하지만, '===' 두 변수의 형식은 동일하지 않은 경우, 값뿐만 아니라 두 변수의 유형도 확인하므로, 허용하지 않는 것이다. 즉, '==='는 'false'으로 반환하고, '=='는 'true'로 반환다.

profile
나를 위한 기록

0개의 댓글