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

아주그냐앙·2022년 7월 20일
0

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

자바스크립트는 느슨한 타입의 동적 언어이다.
먼저 동적언어와 정적언어를 살펴보자

동적언어와 정적언어의 차이는 자료를 지정해줄때 타입을 지정하나 마나의 차이입니다.

JavaScritp 같은 경우에는 a = 1234 와 같이
컴파일시 변수의 타입을 지정해주지 않아도 괜찮습니다.
변수의 타입을 Run time실행시 결정해주기 때문입니다.

하지만 정적언어에 경우에는 a = 1234과 같은 경우에는 오류가 발생합니다.
정적언어의 경우에는 컴파일시 바로 변수의 타입을 지정해줘야 합니다.

동적언어 장단점 및 보완

동적언어는 초기에 타입을 지정안해줘도 되어서 편하고 빠르게 코드를 작성할수 있습니다. 초기에 배우기도 쉽습니다.
하지만 실행도중 예상치 못한 Type Error 이 발생할 가능성이 있어 안정성이 정적언어에 비해 떨어집니다.

-javascript 형변환

자바스크립트는 유연하게 형변환을 할수 있는데 2가지 방식으로 나뉜다.

하나는 암시적 변환으로 자바스크립트 내부에서 런타임 실행시 자동으로 적절한 형변환을 실행해주는 것을 말한다.
ex) '10' * '2' // 10 문자열를 곱해주지만 결과값은 숫자로 자동으로 변환되어서 나온다.

두번째는 명시적 변환으로 개발자가 직접 의도를 가지고 타입을 변환해주는 명시적 변환을 말한다.
ex) perseint(), Number()

===,== 차이

  • '=='
    두개의 값을 비교하는데 결과만 일치하면 된다.

  • '==='
    값을 비교하는데 있어서 결과 뿐만 아니라 데이터 타입도 일치해야만한다.

'6' == 6 //true 이지만
'6' === 6 //false 가 출력된다

undefined와 null의 미세한 차이들을 비교해보세요.

두개다 값이 없다는 점에서 동일하지만 미세한 차이가 있다.

undefined의 경우

>var test; 
console.log(test)
// undefined 와 같이 값이 없는 비어있는 경우이고.

null의 경우

>var test_null = null
console.log(test_null)
// null 이 출력되며 개발자가 의도적으로 값을 비워둔 경우를 말한다.

typeof(test_null)
// object null의 경우 타입이 object가 출력되는걸 알수있다.
typeof(test)
// undefined 반면 undefined과 출력되는걸 볼수있다.

0개의 댓글