Jungki

항해 10일차 (주특기입문 , TIL) 본문

항해 99

항해 10일차 (주특기입문 , TIL)

Daily정기 2022. 12. 14. 21:30

오늘부터는 주특기를 시작하는 주기가 되었다. 입문 단계이기 때문에 리액트에 필요로하는 JS를 먼저 배우는 시간이여서 혼공자바스크립트를 기반으로 공부를 하게 되며 배우게된점을 정리 해보려 한다.

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

1. 느슨한 타입의 동적 언어

 JS의 변수는 특정 타입과 연결되지 않고 모든 타입의 값으로 할당 가능하다고 한다.

let jungki = 27 > jungki ='hungry' > jungki = true / 이런식으로 문자열, 숫자, 불 방식등을 다같이 연동 할수있는 느슨하면서 동적인 언어이다.

2. JavaScript 형변환 JS는 형변환이 다양하다. 오늘 배운 형변환만 정리해 보자면다른 자료형 > 숫자 자료형다른 자료형 > 문자열 자료형다른 자료형 > 불 자료형 이 세가지를 배웠으며 어떤 상황에서 형 변환이 되는지 또 안되는 상황은 어떤 상황인지를 알수 있었다.

3. ==, ===  내가 공부하며 이해한 바로는 ==는 컴퓨터적으로 오류가 발생할수 있다고 한다. 계산식이 잘못된것이 아니라 정수계산 이외의 식을 할때 오류가 나온다고 한다. 그래서 소수점을 이용할때도 정수로 계산한뒤 소수점을 찍는다고 한다 JS에서는 ===으로 하기로 규칙을 정했고 추가적으로 +=, -=, *=, /=, %= 이런식의 복합연산자도 있다!!!!

4.느슨한 타입(loosely typed)의 동적(dynamic) 언어의 문제점은 무엇이고 보완할 수 있는 방법에는 무엇이 있을지 생각해보자 JS는 일단 실행해봐 해줄수 있는만큼 해줄께 라는 식으로 이해하라고 했다. 실행하다보면 예상치 못한 오류로 에러가 발생할수있는데 동적인 언어는 런타임시 확인할수 밖에 없어서 코드가 길수록 에러를 찾기 어렵다고 한다. 다른 해결 방법이 있다고 하는데 아직 모르겠다...

5.undefined와 null의 미세한 차이들을 비교해보세요.undefined 는 변수를 선언하고 값을 못받은 상태이고 , null은 변수를 선언하고 빈 값을 받은 빈 객체이다.

 

JavaScript 객체와 불변성이란 ?

1.기본형 데이터와 참조형 데이터

기본형 : 문자형, 실수형, 정수형, 논리형 // 참조형 : 배열,클래스,인터페이스

2.JavaScript 형변환

위 1-2 질문과 같다!!

3.불변 객체를 만드는 방법

불변 객체는 let,const 등으로 식별자를 저장해서 Object.freeze(식별자) 를 하면 식별자가 불변객체로 변한다고 한다.

4.얕은 복사와 깊은 복사

얕은 복사 = 객체를 복사할때 해당 객체가 복사되어 복사된 객체의 인스턴스 변수를 원본 객체의 인스턴스 변수와 같은 메모리 주소를 참조하고, 해당 메모리 주소의 값이변경되면 원본 객체 및 복사 객체의 인스턴스 병수 값은 같이 변경되는 방식이다.

깊은 복사 = 객체를 복사할때 해당 객체와 인스턴스 변수까지 복사하는 방식이다.

 

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

1. 스코프, 호이스팅, TDZ

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

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

TDZ : 선언단계, 초기단계, 할단 단계 를 거쳐서 발생된것으로  스코프의 시작 지점부터 초기화 시작 지점까지의 구간을 말합니다.

2.함수 선언문과 함수 표현식에서 호이스팅 방식의 차이

함수 선언문 : 함수명이 정의되어 있고, 별도의 할당 명령이 없는 것이며 함수 전체를 호이스팅 합니다. 

함수 표현식 : 정의한 function을 별도의 변수에 할당하는 것으로 별도의 변수에 할당하게 되는데, 변수는 선언부와 할당부를 나누어 호이스팅 하게 됩니다.

3. 여러분이 많이 작성해온 let, const, var, function 이 어떤 원리로 실행되는지 알 수 있어요.

let = 변수 재선언 불가능 /변수 재할당 가능 / 블록스코프로 호이스팅

const = 변수 재선언 불가능 / 변수 재할당 불가능 (상수) / 블록스코프로 호이스팅

var = 변수 재선언 가능 / 펑셔널스코프로 호이스팅

function = 하나의 특별한 목적의 작업을 수행하도록 설계된 독립적인 블록을 의미합니다.

4. 실행 컨텍스트와 콜 스택

실행 컨텍스트 = 자바스크립트의 핵심 개념으로, 코드를 실행하기 위해 필요한 환경이다. 

콜 스택 = 자바스크립트가 함수 호출을 기록하기 위해 사용하는 우물 형태의 데이터 구조이다. 

5.스코프 체인, 변수 은닉화

스코프 체인 = 스코프에 식별자가 없으면 상위 스코프에서 다시 찾아 나간다. 이러한 현상을 스코프 체인 이라고 하며 스코프가 중첩되어있는 모든 상황에서 발생한다.

변수 은닉화 = 외부 객체로부터 '속성 값(데이터, 멤버 변수값)'을 감추는 특성을 말한다.

 

 

 

 

오늘의 문제

1.소문으로만 듣던 트리 쌓기 이다

이쁘다 다이아~

역시 소문대로 왜인지 이해하는데만 30분이 걸렸다. 사실 다시 만들라고 해도 못만들겠다.

 

2.  JS의 기본 지식 부족

그렇기 때문에 오늘부터 공부할 입문 다지기가 중요한 공부가 될것 같다.

 

 

 

 

 

 

오늘 알게된점, 배운점

책을 기반으로 자료와 변수에 대한 기본 지식을 익혔고, 이전에 작업할 떄 사용했던 if문의 원리를 이해하게 되었으며, switch라는 조금더 심화된 조건문을 배웠다. 반복문을 잊을수 없는게 배열을 정리하고 내가 사용해 왔던것들이 자료 비파괴와 파괴를 나뉘는것을 인지했으며 배열내의 요소를 어떻게 추출하고 활요하는지 배우게 되었고 for문을 이용하여 위와 같이 다이아몬드도 만들수 있는것을 알게 되어 많은 배움의 시간이였던것 같다.

'항해 99' 카테고리의 다른 글

항해 12일차 (TIL)  (0) 2022.12.17
항해 11일차 (TIL)  (0) 2022.12.15
항해 9일차 (TIL) / CSS,부트스트랩  (0) 2022.12.14
항해 7~8일차 (WIL)  (0) 2022.12.13
항해 5~6일차  (0) 2022.12.13