고차함수(height order function)는 함수가 함수를 인자로 받거나 함수가 함수를 리턴하는 것을 고차함수라고 합니다. 사실 그냥 이렇게 개념만 알고있으면 이해가 안가요. 예시로 함 볼게요 1️⃣ 함수가 함수를 인자로 받아요 함수가 함수를 인자로 받는다? 그럼 콜백함수 아닌가요 ? 맞아요 고차함수에 의해 콜백되기 때문에 콜백함수라고 생각하면 됩니다. 예상치 못하게 고차함수를 우리가 사용하고 있었어요. 배열 사용할때 map() filter() 함수 많이 쓰지 않습니까 바로 이것이 고차함수였습니다..!! 😮 const arrFunc = n => n * 2 const arr = [1,2,3,4] arr.map(arrFunc) //콜백으로 바꾸면 arr.map( (n) => { return n * 2..
javascript
요즘,, js 기초 다시 공부중인데 코드짤때마다 처참하다;ㅎㅎ,, 내가짜본거 const arr = ["강아지", "토끼", "팬더", "사자", "말", "팬더"]; for (let i = 0; i -1) { arr..
자바스크립트를 처음 접하게 된다면 for문과 while문의 차이와 언제 사용 해야하는지 정확히 모를 수 있다. for문 - 초기값과 조건식 증감연산으로 이루어져 있으며 동작문을 실행 - 조건식으로 true false 를 판단 for(초기값;조건식;증감연산){ 동작문 } //ex for(let i = 0; i < 5; i++){ // 5가 될때까지 반복문을 돌려라 console.log(i) } for문은 조건식이 들어가 있으므로 구하고자 하는 값의 조건이 무엇인지 정확할 경우 사용한다. 또한 초기값 조건식 증감연산이 while문과 달리 블록에서 바로 찾을 수 있기 때문에 가독성이 좋다. while문 - 조건식이 false가 될때 까지 무한 실행 - true 라면 계속 실행하고 false 가 되면 즉시 wh..
Typescript 기본 순수자바스크립트에서 정적타이핑(컴파일당시 결정.변수에 자료형을 사전에 지정)을 지원하는 언어이다. javascript는 동적타입 언어라서 런타임시 type이 결정되지만 typescript는 정적타입이라 변수에 미리 타입을 선언후 컴파일시 타입을 체크해준다. 이러한 점에서 에러를 잡을 수 있고 다양한 브라우저에서 사용가능하도록 typescript로 작성하면 javascript로 컴파일해주기 때문에 babel을 쓸 필요가 없다. 결국 이와 같은점을 확인했을때 typescript도 javascript일 뿐이며 typescript에 javascript가 속해있는 것이다. >>한마디로 말해서 타입스크립트는 내가 원할때 정적타이핑을 하는 자바스크립트! Typescript를 써야하는 이유 1..
>>>formdata from데이터를 key 와 value로 저장할수있는 데이터 구조이다. axios ,fetch 등을 사용하여 여러 파일을 업로드해야하는 경우 유용하다. const formData = new FormData() formData.append(key,value) new연산자를 사용하여 새로운 객체를 만들고 append 메소드를 사용해 key와 value을 추가한다. axios.post('url', formdata) axios로 서버에 fromdata를 전송하면 append에서 추가한 키와 값이 객체로 전달이된다. 💡formdata를 사용하는 이유중 하나! 이미지를 업로드 할경우 form태그에 entype 속성값을 multipart/form-data로 설정해주면 이미지파일도 값이 전송할수 있..
자바스크립트 es6 에서 Symbol 이라는 원시 데이터 유형을 추가하였습니다 자바스크립트에는 밑에와 같은 원시데이터를 가지고있죠 1.Boolean 2.Null 3.Undefined 4.Number 5.String 6.Symbol +new Symbol() Symbol([description]) Symbol은 고유한 데이터입니다. 여러개의 Symbol에 동일한 description을 넣어도 각 다른 존재로 인식됩니다. const a = Symbol("id"); const b = Symbol("id"); console.log(a == b); // false 같은 문자열을 넣었는데 결과 값이 false 로 나오죠? Symbol은 고유한 존재 이기 때문에 문자열이 같아도 영향을 미치지 않습니다 Object ke..
안녕하세요 이번에는 프로토타입에 대해서 포스팅하겠습니다 gogo! 프로토타입(Prototype)은 무엇이냐 function Person(){ this.name = 'rim'; this.job = 'siger' } var obj1 = new Person(); obj1.age = 12; var obj2 = new Person(); Person 생성자 함수를 만들고 new 키워드를 사용하여 obj1 , obj2 두 인스턴스를 생성하였습니다. 그리고 obj1 인스턴스를 생성한후 age 라는 속성을 만들어주었어요 그럼 obj2에서도 age라는 속성을 사용할 수 있을까요? 정답은 no 입니다! function Person(){ this.name = 'rim'; this.job = 'siger' } var obj1 ..
call(),apply(),bind()를 무엇인가를 알아보기 전에 이 메소드들을 왜 사용하고 어떠한 상황에서 사용해야 하는지 아는것이 중요합니다. 그래야 3가지 중에 골라 쓸 수 있잖아요~ 엄청 간단합니다. 함수내부에서 this가 어디를 참조하고 있는지 생각하시면 됩니다. 이 3가지 메소드가 함수내부에서의 this를 제어해주는 역할을 하고 있거든요. why? 먼저 일반적인 함수에서 this가 무엇을 참조하는 지 확인해봅시다 함수를 호출했더니 this가 window를 가르키고있습니다. 당연한 결과죠 객체를 따로 지정해주지 않았으니까 전역객체인 window를 가르키는거겠죠 그럼 객체안에서 메소드 함수는 어떻게 동작하는지 볼까요? obj객체 내의 test함수를 호출했더니 this가 test함수를 실행시키고 있..