개인공부/TIL(Today I Learned)

TIL 11일차_JS기본

soon327 2021. 1. 29. 00:15

arr.slice(start,end)

start부터 end미만의 인덱스를 복사한다.

  • end가 arr의 length를 초과하면 그냥 마지막 인덱스 까지 slice한다
  • start가 end보다 크거나 하는 등, 범위가 적절하지 않으면 빈 배열이 출력된다.
  • arr.slice()는 배열 복사용으로 자주 쓰인다.
  • slice로 복사한 값에 변화를 줘도 원본에 영향을 주지 않는다.
    아직 확실하진않지만 내 생각으로는, slice는 immutable method이니까 slice한 값을 새로운 주소에 저장는 듯 하다.

객체의 길이 구하기

문자열이나 숫자, 배열에서는 .length 메쏘드를 쓰면 길이를 구할 수 있지만
객체에서는 그렇게하면 undefined가 출력된다.
따라서 Object.keys(obj).length로 길이를 구해야 한다.
(obj의 key들을 배열로 만든뒤, 배열의 length 출력)

CSS에서 하위선택자를 선택할 때 space와 >

  • 꺽쇠(>)는 자식선택자
  • 스페이스는 후손선택자

Today's ?!

  • 호이스팅은 자바스크립트의 특성이지만 지양해야하는 특성이다. 예측하지 못한 에러를 낼 수 있기 때문.
    따라서 함수를 사용할 때, 함수선언식보다 호이스팅이 되지않는 함수표현식을 선호하는 추세.

  • this는 method를 호출하는 시점에 method를 호출한 객체를 가리킨다.
    this를 쓰는이유?
    함수는 어디에 속해있기만 한 것이아니고, 객체의 함수 즉, 메쏘드로 빈번히 활용된다.
    따라서 함수를 호출하는 객체를 간편히 지정하기위해 사용한다.

  • 함수의 매개변수가 하나인데, 인자를 2개이상 넣어서 호출하면 어떻게 될까?
    다른 언어에서는 에러가 나지만, 자바스크립트에서는 에러가 나지 않고 첫번째 인자가 매개변수에 입력되고 나머지 인자는 무시된다.
    이러한 경우를 해결하고자 나온것이 ...(rest parameter, spread syntax)!!

  • 깊은복사와 얕은복사 ???
    관련글을 읽어봤는데 이해가 아직안된다. 주말에 좀더 찾아보자.

  • arguments는 모든 함수의 실행시, 자동으로 생성되는 객체이다. 객체의 key는 0,1,2 ...이다.
    빈번히 활용된다는데 어떻게활용되는지는 공부해봐야 알겠다.

'개인공부 > TIL(Today I Learned)' 카테고리의 다른 글

TIL 13일차_Sass(Scss) 맛만보기  (0) 2021.01.31
TIL 12일차_CSS단위 vh,vw와 %  (0) 2021.01.30
TIL 10일차_git과 CLI  (0) 2021.01.28
TIL 9일차_데이터의종류와 SCOPE  (0) 2021.01.27
TIL 8일차_배열과 객체  (0) 2021.01.26