개발일지./항해99

항해99 2주차 주특기 과제 (1.설명하기)

쭈(joo) 2022. 11. 18. 15:42
⭐JavaScript의 자료형과 JavaScript만의 특성은 무엇일까 ?

 

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

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

 

  • JavaScript 형변환 (Type Casting)

 

자바스크립트는 타입이 매우 유연한 언어이다. 자바스크립트 엔진이 필요에 따라 암시적변환

혹은 개발자의 의도에 따라 명시적변환을 실행한다.

 

  • 암시적 형 변환(Implicit type conversion)

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

 

  • 명시적 형 변환(Explicit Type Conversion)

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

 

 

  • ==, ===

자바스크립트는 엄격한 비교와 유형변환 비교를 모두 지원하므로, 

어떤 연산자가 어떤 비교조건에 사용되는지가 중요하다. 
위에 말했듯이, ===는 변수 유형을 고려하는 반면, ==는 변수 값을 기반으로 유형을 수정한다.

 

 

 

  • 느슨한 타입(loosely typed)의 동적(dynamic) 언어의 문제점은 무엇이고 보완할 수 있는 방법 생각하기.

 

실행 도중에 변수에 예상치 못한 타입이 들어와 타입에러가 발생할 수 있음 
동적타입 언어는 런타임 시 확인할 수 밖에 없기 때문에, 코드가 길고 복잡해질 경우 타입 에러를 찾기가 어려워 집니다. 
이러한 불편함을 해소하기 위해 TypeScipt나 Flow 등을 사용할 수 있습니다.

 

 

  • undefined와 null의 미세한 차이들을 비교해보세요.
  • undefined
    • 값이 할당되지 않은 변수는 기본적으로 undefined 값을 가집니다. 원시 자료형중 하나
    • 변수는 존재하나, 어떠한 값으로도 할당되지 않아 자료형이 정해지지(undefined) 않은 상
  • null
    • 어떤 값이 비어있음을 의도적으로 표현할 때 사용됩니다. 원시 자료 형중 하나
    •  변수는 존재하나 null 로 (값이) 할당된 상태 . 자료형이 정해진 (defined) 상태
 
⭐JavaScript 객체와 불변성이란 ?

 

  • 기본형 데이터와 참조형 데이터

기본형 타입(Primitive type)

종류: 논리형(boolean), 정수형(int), 실수형(double), 문자형(char)

 

조형 타입(Reference type)

종류: 배열(Array), 클래스(Class), 인터페이스(Interface)

 

  • 불변 객체를 만드는 방법

'변하지 않는 객체' 즉 이미 할당된 객체가 변하지 않는다는 뜻을 가지고 있다.

  • 얕은 복사와 깊은 복사

-얕은 복사

 

객체를 복사할 때, 해당 객체만 복사하여 새 객체를 생성한다.

복사된 객체의 인스턴스 변수는 원본 객체의 인스턴스 변수와 같은 메모리 주소를 참조한다.

따라서, 해당 메모리 주소의 값이 변경되면 원본 객체 및 복사 객체의 인스턴스 변수 값은 같이 변경된다.

 

⭐호이스팅과 TDZ는 무엇일까 ?

 

  • 스코프, 호이스팅, TDZ

스코프: 변수, 함수, 클래스가 접근할 수 있는 유효 범위.

 

호이스팅: 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다.

                  선언된 변수함수함수의 스코프 최상단으로 끌어올려진다는 의미입니다.

 

  • 함수 선언문과 함수 표현식에서 호이스팅 방식의 차이
  • 여러분이 많이 작성해온 let, const, var, function 이 어떤 원리로 실행되는지 알 수 있어요.
  • 실행 컨텍스트와 콜 스택
  • 스코프 체인, 변수 은닉화