[10/22/2022] Today, I Learned

유영준·2022년 10월 22일
post-thumbnail

자바스크립트의 기본 개념동작 원리를 정확히 이해하는 것이 중요!


개인적인 공부를 하면서 중요한 내용을 정리한 형식이기 때문에 오류가 있을 수 있습니다.
피드백 주시면 정말 감사하겠습니다.


오늘 배운 내용

  • 제어문
  • 타입 변환과 단축 평가
  • 객체 리터럴
  • 원시 값과 객체의 비교
  • 함수
  • 스코프

알고 있던 내용

  • 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환이라 한다
  • 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 변환하는 것을 암묵적 타입 변환이라 한다
  • 원시 타입의 값, 즉 원시 값은 변경 불가한 값이지만 객체 타입의 값, 즉 객체는 변경 가능한 값이다
  • 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다
  • 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메서드라 부른다
  • 빈 문자열도 프로퍼티 키로 사용할 수 있다
  • 메서드 내부에서 사용한 this 키워드는 객체 자신을 가리키는 참조변수다
  • 대괄호 프로퍼티 접근 연산자 내부에 지정하는 프로퍼티 키는 반드시 따옴표로 감싼 문자열이어야 한다
  • delete 연산자는 객체의 프로퍼티를 삭제한다
  • 이상적인 함수는 한 가지 일만 해야 하며 가급적 작게 만들어야 한다
  • repeat 함수는 매개변수를 통해 전달받은 숫자만큼 반복하며 호출한다
  • 상위 스코프에서 유효한 변수는 하위 스코프에서 자유롭게 참조할 수 있지만 하위 스코프에서 유효한 변수를 상위 스코프에서 참조할 수 없다

몰랐던 내용

  • 암묵적 타입 변환은 기존 변수 값을 재할당하여 변경하는 것이 아니다
  • 두 번째 피연산자가 논리곱 연산자 표현식의 평가 결과를 결정한다 ('Cat' && 'Dog' // "Dog")
  • 논리합 연산자는 논리 연산의 결과를 결정한 첫 번째 피연산자가 그대로 반환한다 ('Cat' || 'Dog' // "Cat)
  • 단축 평가는 표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것을 말한다
  • 옵셔널 체이닝 연산자 ?.는 좌항의 피연산자가 null 또는 undefined 경우 undefined를 반환하고, 그렇지 않으면 우항의 프로퍼티 참조를 이어간다
  • null 병합연산자 ??는 좌항의 피연산자가 null 또는 undefined인 경우 우항의 피연산자를 반환하고, 그렇지 않으면 좌항의 피연산자를 반환한다
  • 인스턴스란 클래스에 의해 생성되어 메모리에 저장된 실체를 말한다
  • 식별자 네이밍 규칙을 따르지 않는 이름에는 반드시 따옴표를 사용해야 한다
  • 불변성 : 변수 값을 변경하기 위해 원시 값을 재할당하며 새로운 메모리 공간을 확보하고 재할당한 값을 저장한 후, 변수가 참조하던 메모리 공간의 주소를 변경한다
  • 문자열은 유사 배열이므로 배열과 유사하게 인덱스를 사용해 각 문자에 접근할 수있다 하지만 문자열은 원시 값이므로 변경할 수 없다
  • 두 변수의 원시 값은 서로 다른 메모리 공간에 저장된 별개의 값이 되어 어느 한쪽에서 재할당을 통해 값을 변경하더라도 서로 간섭할 수 없다
  • 얕은 복사는 객체의 참조값(주소 값)을 복사하고, 깊은 복사는 객체의 실제 값을 복사한다
  • 자바스크립트에는 "참조에 의한 전달"은 존재하지 않고 "값에 의한 전달"만이 존재한다고 말할 수 있다
  • 함수 선언문이 코드의 선두로 끌어 올려진 것처럼 동적하는 자바스크립트 고유의 특징을 함수 호이스팅이라 한다
  • 즉시 실행 함수는 반드시 그룹 연산자 (...)로 감싸야 한다.
  • 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다 이를 스코프라 한다
profile
프론트엔드 개발자 준비 중

0개의 댓글