전체 글 (165)

06
04

1. 고차 함수

  • 함수를 인자로 받을 수 있고, 함수를 값으로 반환할 수 있는 함수입니다.
  • 이때 함수 인자 => 콜백 함수 : 함수의 파라미터로 다른 함수를 넘긴다. 즉, 부르면 온다!

2. 콜백함수

  • 고차 함수 안의 변수로 가지고 있는 함수.
  • 말하자면 고차 함수가 대장이고 밑에 졸병들이 콜백 함수가 된다(부르면 와서 일함)
  • 콜백함수가 실행되고 고차 함수는 잠깐 와서 실행되고 종료된다.

3. 고차 함수의 메서드

  • 메서드는 대부분 배열을 한 번씩 순환한 뒤 배열을 변형하게 된다. (바꾸고는 싶은데, 무엇이 있는지 모르니까)
  • map, filter 다 포함.
  • 메서드의 사용을 외워서 해 버리면 조금만 어려워지면 못 할 것이다. 우리가 메서드를 만들 수 있다는 것을 잊지 말자!
  • 그런 작업이 사실은 고차 함수가 돌아가는 방식과 같다.
  • 이때 왜, 함수를 변수에 넣냐? : 원시형태로는 복잡한 요소를 넣을 수 없기 때문이다!
  • 결국, 고차 함수도 함수가 안에 들어가 있을 뿐이지 함수라고 생각하면서 보면 된다. 그리고 메서드들은 각각의 변수가 들어갈 자리가 있다. 그것도 찾아보고 하면 된다.
  • 안되면 손 코딩한다.

메서드를 더 진득하게 보면서 '함수'라고 생각하고 더 친숙하게 사용해야 한다.
선언을 똑바로 한다. 함수의 시작은 선언부터!
어떤 상황에 어떤 배열 메서드를 사용해야 할지를 집중적으로 보면 될 것 같다.

'Coding > Today I Learned' 카테고리의 다른 글

2021.06.05(Set.)  (0) 2021.06.06
2021.06.04(Fri.) <JSX 문법의 기초>  (0) 2021.06.05
2021.06.02(Wed.)  (0) 2021.06.03
2021.06.01(Tue.) <DOM>  (0) 2021.06.01
2021.05.31(Mon.)  (0) 2021.06.01
COMMENT
 
06
03

1. 추상화와 일반화

  • 추상화는 코드들을 바로 사용하며 떠올릴 수 있게끔 하는 나의 생각을 말한다.
  • 일반화는 그 추상화된 것을 어떤 상황에서든 변수들을 사용해 적용시킬 수 있게 되면 된다.

2. CRUD

  • 내가 이 컴퓨터 언어를 알고 있는가? 를 알고 싶을때 이것이 다 되는가? 를 보면 된다.
    • Create
    • Read
    • Update
    • Delete

3. addEventListener

addEventListener('click, () => {
    console.log("hellow world");
})
  • 약간 최신 메소드, 이벤트를 재활용할 수 있게 해 준다!

4. 이벤트

  • 이벤트의 타깃 => 이벤트가 발생한 곳의 주소 (target) => currentTarget 이 있으니까 진짜 target을 정확히 해줘야 함. 아니면 그 자식들이 싹 다 실행됨.
  • DOM도 객체이니까 참조 자료형인걸 생각한다.

계속 써봐야 늘 것 같다. 개념은 알겠다.
계발자 도구와 친해지는 것이 좋겠다. 몹시 불편하다.
알고리듬 문제도 좋지만, 조금은 재미있다고 생각되는 것들을 위주로 배우면서 필요한 부분을 알아가는 것이 더 좋을 것 같다. 마구 때려 넣으면 역시 지치긴 한다.
그렇다고 알고리듬 문제가 싫은 건 아니지만 피곤함이 차원이 다르다.

'Coding > Today I Learned' 카테고리의 다른 글

2021.06.04(Fri.) <JSX 문법의 기초>  (0) 2021.06.05
2021.06.03(Thu.)  (0) 2021.06.04
2021.06.01(Tue.) <DOM>  (0) 2021.06.01
2021.05.31(Mon.)  (0) 2021.06.01
2021.05.30(Sun.) <깨끗한 코드>  (0) 2021.05.30
COMMENT
 
06
01

1. DOM(Document Object Model)

  • 별다른 의미가 없는 문자열 같은 정보를 HTML 이 알아들을 수 있도록 바꿔주는 것이다!(parse) => 이걸 Node로 한다
  • 그래서 스트링이 의미가 생겼으니 하나하나 다 쪼개버린다. 심지어 빈칸까지 자른다.
  • 자바스크립트는 원하는 요소를 '조작' 하는 것에 의의가 있으니까, DOM은 의미 있는 부분으로 잘라서 선택을 해주는 역할을 담당하게 된다.
  • 예시를 들면, 이렇게 쓸 수 있다.
console.log(atts.getAttribute('style'));
  • 왜 body의 마지막에 넣나 :
    • html로 뼈대를 짜고 그 위에 기능을 넣는 것이 script이다. html은 script를 만나면 기능을 멈춘다. 그러므로 틀이 다 짜인 body를 넘어서 script가 들어가는 것이 옳다.
  • 이 정도는 알아두자 '노드 프로퍼티'
    • childNodes
    • firstChild
    • lastChild
    • parentNode
    • previousSibling
  • 이정도는 알아두자 '노드 메서드'
    • appendChild
    • renoveChild
  • 이 정도는 알아두자 '도큐먼트 메서드
    • document.createElement()
  • 이 정도는 알아두자 'HTML 엘리먼트 프로퍼티'
    • innerText
    • innerHTML
    ! : 기능은 해석해 보면 알 수 있다! 단어와 기능을 연결 지어 외우려고 하지 말고, 일단 보자!

2. 상속

  • 부모는 자식에게 '상속'을 해 줄 수 있다.
  • HTML이 '트리 구조'로 되어 있기 때문에 윗단계의 부모가 자식에게 상속이 가능하다.

3. DOM을 이용해 HTML의 구조를 확인하는 법

  • console.dir : console.log 와 다르게 DOM을 객체의 모습으로 출력한다.
  • 그래서 간단하게 어떠한 태그를 찾고 싶으면 document. 부모 태그. 자식 태그 순으로 다 찾을 수 있다.

4. DOM 사용 시 주의할 만한 사항

  • 이벤트 속성에 이벤트 핸들러를 등록할 때, 함수 그 자체를 써야 한다. 실행한답시고, ()를 넣으면 안 된다!
  • value 값으로 여러 가지 엘리먼트의 '입력값'을 얻어 낼 수 있다.
  • classList 쓸 때,.(닷) 안 찍고 그냥 넣어도 된다. 이미 클래스에 대해 다루고 있다고 이름이 설명하고 있다.

5. document node

  • HTML 문서 전체의 정보를 가진 녀석
  • document. 바디, 헤드, 타이틀 같은 큰 태그들 : 바로 접근 가능
  • document.querySelector : 한 태그 바로 찍어버림

6. HTML Element Object Propperties and Methods

  • HTML Element Object : HTML의 요소 전체에 정보를 가진 녀석
  • createElement()
  • tagName
  • getAttribut()
  • setArrtibut()
  • hasAttribut()
  • removeAttribute()
  • classList

 결론 : DOM은 정말 흥미롭다, 유저와 의사소통 혹은, 자바스크립트의 반응까지 필요하고 원하는 곳에 넣고 빼고, 다 한다!
그래서 사실 진짜 중요한 것은, '내가 원하는 곳에 접근하려면 어디에서 어떤 값을 빼내야 하는가?'이다.
그다음에 중요한 것이 DOM의 상태를 조작하면 되는 것이다!
 여담 : 그래서, 다양하고 최신화된 명령들을 받아 내려고 하다 보니, 구형 브라우저들은 알아먹지 못하는 경우가 있다. 이때 필요한 것이 jQuery 이다. 그 브라우저가 알아먹지 못 하는 명령을 알아들을 수 있는 대체 명령으로 바꿔 주는 이쁜 짓을 한다. 그래서 명령이 하도 많아서 무겁고, 많은 이들에게 널리 널리 오랜 기간 '사랑받아(퇴물 취급이 없지 않다 카더라...)' 왔다.
 여담 2 : DOM 은 충분히 안 직관적이다. 걱정마라 '리 엑트'가 도와준다고 한다. 오늘은 아니야... 흑흑

'Coding > Today I Learned' 카테고리의 다른 글

2021.06.03(Thu.)  (0) 2021.06.04
2021.06.02(Wed.)  (0) 2021.06.03
2021.05.31(Mon.)  (0) 2021.06.01
2021.05.30(Sun.) <깨끗한 코드>  (0) 2021.05.30
2021.05.29(Set.)  (0) 2021.05.29
COMMENT
 
06
01

1. spread와 rest

  • spread : 그 전의 남아 있는 '모든 인자'를 하나의 배열로 펼쳐서 가져온다. 즉, '하나인 값을 여러 개의 요소로 펼쳐준다' 정도의 spread의 의미를 생각하면 될 것 같다. 대신, 따로 매개변수가 있다면 따로 남겨놓고 가져오게 된다.
  • rest : 그 전의 남아 있는 '모든 요소'를 하나의 배열로 합쳐서 가져온다. 즉, '여러개의 요소를 하나의 값으로 합쳐준다.'는 느낌.
    • 왜 씁니까? : 함수의 파라미터 안에서도 사용될 수 있어서, 함수의 파라미터가 뭐가 올지 모르는 경우애도 rest를 사용하여, 가져와서 처리할 수 있다.
  • 그래서, 그들을 하나씩 개별적인 변수에 담을때, 하나하나 요소를 정해서 담아 주거나, 혹은 큰 배열이나 객체 덩어리도 하나로 담을 때 그 각각의 요소들이 따로 담겨있게 할 수 있어서 '구조 분해 할당'이라고 한다.

2. 문자열과의 계산

  • 문자열 + 무언가 다른 요소들 : 문자열과 어떠한 것들을 더해도 뒤에 나올 것을 '문자열' 타입으로 바꿔서 더한다.
  • 가령, '1' + true 같은 상황도 '1true' 로 만든다.

3. typeof function

  • object 일꺼라고 생각했지만 function 도 타입이다!
  • array와 객체(object)만 조심하면 더 좋을 듯하다.
정답은 다 쓰여있다고 하였거늘...
진짜다. 영어라고 대충 읽지 말고 똑바로 읽어 보자.
기본적인 개념은 대충 잡혀있는데 다양하게 적용할 수 있는 방향으로 생각해 보자.
CLI로 npm, git 사용법을 똑바로 익혀야 한다. 아니면 곧 후회할 것 같다.

'Coding > Today I Learned' 카테고리의 다른 글

2021.06.02(Wed.)  (0) 2021.06.03
2021.06.01(Tue.) <DOM>  (0) 2021.06.01
2021.05.30(Sun.) <깨끗한 코드>  (0) 2021.05.30
2021.05.29(Set.)  (0) 2021.05.29
2021.05.28(Fri.) <스코프와 클로저>  (0) 2021.05.28
COMMENT