📁
til
  • TIL(Today I Learned)
  • javascript
    • value-number-string-boolean-null-undefined
    • primitive-reference
    • Hoisting
    • Prototypes in Javascript
    • this
    • prototype
    • 콜백함수 (Callback function)
    • 함수의 호출
    • 자료구조 new keyword
    • closure
    • Promise
    • event-loop
    • array-object
    • 객체
    • Arguments
    • higher order function
    • operators-function-control-flow
    • 객체 생성 패턴 3가지
    • Javascript scopes
    • Functional Programming
    • Design Patterns
    • 데이터 타입
    • Object 객체
    • 표준 내장 객체의 확장
    • 참조
    • 함수
    • 상속(Inheritance)
    • this - 'this'를 사용하는 해당 함수를 '어떻게' 실행하느냐에 따른 4가지 this 정의
    • 전역객체(Global object)
    • 객체 지향 프로그래밍
    • The 'new' keyword - Object Creation in JavaScript
  • javascript-api
    • Number
      • Number.MAX_VALUE
      • Number.isInteger
      • Number.NEGATIVE_INFINITY
      • Number.isNaN()
      • Number.POSITIVE_INFINITY
      • Number.parseFloat
      • Number.EPSILON
      • number.toExponential
      • Number.MAX_SAFE_INTEGER
      • Number1 - 자연수, 정수, 10진수, 2진수, 부동소수점, 실수
      • Number.isSafeInteger()
      • Number.MIN_VALUE
      • Number.parseInt
      • Number.NaN
      • Number.isFinite()
      • Number.MIN_SAFE_INTEGER
      • toFixed
    • string.split
    • String.fromCodePoint
    • string.trimEnd
    • string.padStart
    • string.@@iterator
    • String.fromCharCode
    • string.toUpperCase
    • string.codePointAt
    • string.toLowerCase()
    • string.toString
    • string.includes
    • string.replace()
    • string.charAt
    • String.lastIndexOf
    • string.slice
    • string.search
    • string.padEnd
    • string.substring
    • string.length
    • string.trim
    • string.localeCompare
    • String.indexOf
    • string.endsWith
    • string.valueOf
    • String.raw
    • string.matchAll()
    • string.repeat
    • string.match
    • String.prototype
    • string.startsWith
    • string.charCodeAt
    • string.trimStart
    • string.concat
    • string.toLocaleUpperCase()
    • string.toLocaleLowerCase
    • String
  • learn-node
    • debugger
    • Tip
  • schema-design
    • Database Schema Design
    • Database Schema Design
  • react
    • LifeCycle
    • redux
    • Context API
    • 함수형 컴포넌트와 클래스, 어떤 차이가 존재할까?
    • Hooks과 useEffect 사용해 보기
    • Route
    • async wait 사용하기
    • Hooks API Reference
    • context
    • npm uninstall 하는법
    • test 만들기
  • tip
    • 클린코드
    • BxSlider로 텍스트 흐르는 효과 만들기
  • javascript30
    • Event Capture, Propagation, Bubbling and Once
    • Object and Arrays - Reference VS Copy
  • typescript
    • 우아한 타입스크립트 2부
    • The Basic Cheatsheet
    • TypeScript
    • Type Guards and Differnetiating Types
    • 우아한 타입스크립트
    • Generics
  • git-from-the-hell
    • git
    • init-status-add-commit-log-stage-repository
    • log-diff
    • 머지 후 branch 삭제하기
    • 지옥에서 온 Git
    • reset-revert
    • develop branch 를 pull 하고 싶을때
  • conference-and-seminar
    • 모던 프론트엔드 개발환경의 이해
  • fire-base
    • Firebase .gitignore
  • vanillacoding
    • Data Structures
    • Sorting Algorithms - part 1
    • Promise
    • class
    • 04.quiz
    • 07.event-loop
    • Design Patterns
    • OOP (Object Oriented Programming)
  • etc
    • 알고리즘 코드리뷰
    • 스스로 공부하는 법
    • 바닐라코딩 수강 후기
    • async 과제 후기 - 비동기, 동기, 클로저, 배열과 객체
    • 유용한 사이트
  • algorithm
    • The Supermarket Queue
    • Find the odd int
    • The Office III - Broken Photocopier
    • Directions Reduction
    • The Office II - Boredom Score
    • Divisible Sum Pairs
    • Codewars 이용자 솔루션 모음
    • Shortest Word
    • find key
    • Two Sum
    • Simple Pig Latin
  • Book
    • the essence of object-orientation
      • 타입과 추상화
      • 객체 지도
      • 이상한 나라의 객체
      • 추상화 기법
      • 05. 책임과 메시지
      • 07.함께 모으기
      • 04. 역할, 책임, 협력
      • 협력하는 객체들의 공동체
  • ecma-script2015
    • Object Literal Upgrades
    • default-parameter-template-literals-arrow-functions
    • spread-operator-rest-param
    • let-const-rest-parameter-spread-operator-destructuring
  • http
    • 웹 브라우저에 URL을 입력했을 때 어떻게 웹 페이지가 보여질까?
  • jest
    • toThrow(error?)
  • data-structures
    • Data Structures
  • express
    • express generator
    • CORS
  • css-flexible-box-layout
    • flex 해버렸지 뭐야
  • git
    • Git
  • mongodb
    • MongoDB
  • markdown
    • use-markdown
  • cmder
    • cmd 명령어 모음
  • debug
    • trackClicksEx function error
  • npm
    • NPM TOKEN 설정하기
  • storybook
    • Storybook
  • sort
    • Sorting Algorithms - part 1
  • javascript-koans
    • Javascript Koans 오답노트
  • rxjs
    • Rx.js
  • dom-elements
    • HTML Element
  • redux-toolkit
    • Redux Toolkit
  • github-actions
    • GitHub Actions
  • redux-middleware
    • redux middleware
  • rest
    • rest
  • css-rendering
    • 코드 스피츠 - CSS Rendering 1회차 2/2
    • 코드 스피츠 - CSS Rendering 1회차 1/2
  • you-dont-know-js
    • 타입
  • server
    • # shutdown local server
  • semantic-versioning
    • Semantic Versioning 2.0.0
Powered by GitBook
On this page

Was this helpful?

  1. javascript

콜백함수 (Callback function)

어떠한 함수가 수신하는 인자가 함수일 경우를 말한다.

array.sort(sortFunc);

내장객체(내장메소드,빌트인객체,빌트인메소드)인 sort는 인자값으로 function을 받는다.

var numbers = [20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
var sortfunc = function(a, b){
    //console.log(a, b);
    if(a > b){
        return 1;
    }else if (a < b){
        return -1;
    }else {
        return 0;
    }
}
console.log(numbers.sort(sortfunc));
var numbers = [20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
var sortfunc = function(a, b){
    //console.log(a, b);
    return a - b
}
console.log(numbers.sort(sortfunc));

양수, 음수, 0을 한번에 정리 여기서 sortfunc가 콜백이 된다. sort 메서드의 동작방법에 영향을 끼친다.

오리지널 함수 동작방법을 값으로 전달한 함수를 통해 완전히 바꿀 수 있다.

비동기 처리에서의 Callback

일단, 비동기 처리란 무엇인가? 상상하자

내가 글을 쓰면 만명의 구독자에게 메일이 간다. 글작성 -> 이메일발송 -> 작성완료 가 포인트 이메일발송을 만명의 구독자에게 보낸다고 3시간이 걸린다 치자, 이 과정을 순차적으로 진행한 동기적 처리라 한다.

글작성 -> 이메일발송예약 -> 작성완료 발송 예약이라는 변경으로 인하여 작성완료페이지를 볼 수 있고, 다 끝난거 같지만 백그라운드에서 3시간을 처리 todo 같은거라 할 수 있다. 그 일을 지금처리 할 수 없지만 나중에는 처리해야하는 일 이런일을 비동기적인 처리라 한다.

페이지내에서 장바구니 창이라던지 등 페이지 url이 변경되지 않고 작은 박스가 뜨는 경우 웹브라우저와 서버가 조용히 일을 하는거다. 이러한 기법을 Ajax라 부른다.

Ajax를 통해 웹이 단순히 문서가 아닌 웹애플리케이션 역할을 하게 되었다.

이러한 Ajax요청일은 페이지를 얼리지않고 계속 서버와 통신하는 와중에도 다른 활동(스크롤이라던지)까지 같이 할 수 있게 한다.

$.get('./datasource.json.js',function(result){
  console.log(result);  
},'json');

(Jquery 라이브러리 사용)

.get('url',함수) 이라는 메소드는 첫번째 인자로 url를 받고, 두번째인자로는 함수로 서버와 통신이 끝났을 때 호출되도록 약속된 것.

첫번째 인자로 서버와 통신하는건 get 메소드를 쓰면서 동일하지만, 두번째인자를 통해 그 동작방법을 완전히 바꿔놓을 수 있는건 콜백함수가 있기 때문에 가능하다.

PreviousprototypeNext함수의 호출

Last updated 5 years ago

Was this helpful?