JS 중급 강의 - 변수와 객체

Jiwon Lee·2022년 10월 22일
1

변수

var → 변수 재선언 가능, 선언 전에 변수 사용도 가능, 함수 스코프

let, const → 블록 스코프

하지만 var는 현재 권장되지 않음

변수의 생성 과정

  1. 선언 단계
  2. 초기화 단계
  3. 할당 단계

var선언 단계와 초기화 단계가 동시에 진행됨

const선언 + 초기화 + 할당이 동시에 진행됨

호이스팅 Hoisting

스코프 내부 어디서든 변수 선언부의 코드가 최상단에 있는 것처럼 작동하는 것

var를 사용한 변수의 경우 호이스팅됨 ! let, const도 호이스팅은 되지만 TDZ의 영향으로 오류 발생

초기화, 할당은 호이스팅 되지 않아 undefined로 표시됨

console.log(name)
var name = "Jane";

TDZ( Temporal Dead Zone )

코드를 예측 가능하게 하고, 잠재적인 문제를 줄여줌

객체 Method

  • Object.assign({}, 원본 객체1, 원본2...) → 객체 복제, 병합 const cloneUser = user;는 참조 값 복사 … 똑같은 걸 두 개 만들려면 assign() 사용해야 함 !!
  • Object.keys() → 객체 key 배열 반환
  • Object.values() → 객체 value 배열 반환
  • Object.entries() → 객체 key / value 쌍 배열 반환
  • Object.fromEntries() → key / value 쌍 배열을 객체로 변환

심볼이란

property key는 문자형으로 사용됨 → 숫자, bool로 작성해둬도 문자로 접근

심볼은 유일한 식별자를 만들 때 사용함 ! log 직으면 다 Symbol()로 뜨지만 내용물은 다름

**const key = Symbol(설명);** 으로 생성 후 프로퍼티 key로 사용

→ 원본 객체 수정 없이 새로운 속성 추가 가능 ( keys()에 보이지 않음 … )

  • key.**description**으로 매개변수로 사용했던 설명 확인 가능
  • Object.**getOwnPropertySymbols**(key); → 존재하는 symbol 키 리스트 출력
  • Reflect.**ownKeys**(key); → symbol 키를 포함한 모든 key 리스트
  • const key = **Symbol.for**(이름);으로 전역 Symbol 공유 가능

진법 변환

toString(진수)으로 진법 변환 가능 !

소수점 자릿수 표현하기

  1. Math.round(값 * 10^자릿수)/10^자릿수 공식 사용
  2. num.**toFixed**(자릿수); 함수 사용 → 문자열임에 유의 !!

isNaN()

NaN( Not a Number )을 확인하는 유일한 방법!

NaN != NaN 이므로 ==으로 확인 불가능함 …

parseInt()

Number()와 달리 읽을 수 있는 부분까지 숫자로 변환해줌 !!

소수점이 있을 경우 소수점 아래는 무시

parseFloat()도 parseInt()와 동일하게 동작, 부동소수점 반환

아스키 코드

문자열의 비교는 ASCII 코드를 기준으로 진행됨

"a".codePointAt(0); // 97
String.fromCharCode(97); // "a"
profile
노는 게 제일 좋은데 공부는 하고 싶어요 😗

0개의 댓글