회고/Techit Frontend School 10기

[멋쟁이 사자처럼 프론트엔드 스쿨] 29일차 TIL - for문, 함수, 프로퍼티 존재 확인

kelly09 2024. 6. 4. 16:57

🍰 공부할 게 너무너무너무너무너무너무너무너무너무 많아서 블로그는 키워드 중심으로만 작성 중...

🍴 in 연산자

: 객체 내에 특정 프로퍼티 존재 여부 확인

  • 확인 대상 객체가 상속받은 모든 프로토타입의 프로퍼티를 확인하므로 주의 필요

🍴 Object.prototype.hasOwnProperty 메서드

: 인수로 전달 받은 프로퍼티 키가 객체 고유의 프로퍼티 키인 경우에만 true 반환

console.log(person.hasOwnProperty('toString')); // false

🍴 Function.prototype.call()

: call() 메소드는 주어진 this 값 및 각각 전달된 인수와 함께 함수를 호출함

  • 이미 할당되어있는 다른 객체의 함수/메소드를 호출한는 해당 객체에 재할당 할 때 사용
  • 다른 메서드를 빌려 씀
Object.prototype.hasOwnProperty.call(person, 'firstName');

왜 빌려 쓰는가?

  • JavaScript 객체는 내가 갖고 있지 않은 대상들을 조회할 수 있게 해줌
  • 내가 원하는 값만 찾으려면 hasOwnProperty() 이용
  • 그러나 hasOwnProperty()는 훼손될 수 있는 여지가 있음
  • 내가 해당 메소드에 강제로 속성을 주면 그 속성이 출력됨 => 나중에 꼬일 수 있음
  • Object는 막 접근해서 쓸 수 없고 허락 받아야 함
  • 그런 경우 쓸 수 있는 게 call()
  • call() 첫 번째 인자: 걔를 빌리겠다!
  • 두 번째 인자: 얘를 매개변수로 넣어라!

🍴 enumerable(열거 가능한)

 

: 색상에 차이가 있음. -> 내가 조회해서 열거 할 수 있는지 차이

🍴 점 표기법 vs 대괄호 표기법

  • 점 표기법 => 변수 설정 x
  • 대괄호 표기법 => 변수 설정 o

🍴 for...of

: 반복 가능한 대상만 쓸 수 있음 -> iterable 요소만 사용 가능

  • for...in은 잘 사용 안 한다고 했는데, 그럼 객체는 뭘로 순환?
  • => 객체를 배열로 만들고 for...of를 사용

🍴 Object.keys()

: 객체들의 만 모아 하나의 배열로 반환

🍴 Object.values()

: 객체들의 을 모아 하나의 배열로 반환

🍴 Object.entries()

: 객체의 키와 값을 하나의 쌍으로 만들고 이를 배열로 반환

🍴 함수

  • 함수 이름 잘 짓기(동사, 가독성)
  • 전역의 오염 막기
  • 하나의 기능만 수행하기
  • 재사용성이 좋아야 함