본문 바로가기

분류 전체보기104

JS문법종합반 정리 4주차 - 콜백함수와 제어권, 동기와 비동기, 비동기작업의 동기적 표현 콜백함수와 제어권 콜백함수란 다른 코드의 인자로 넘겨주는 함수. 이때 콜백함수의 매개변수, 양식, 실행, 호출 시점 등에 대한 모든 제어권은 얘를 인자로 받는 코드가 가짐!! 사용자가 실행시키고 싶을 때 실행할 수 없음!  동기와 비동기 개념동기 synchronous : 현재 실행 중인 코드가 종료돼야만 다음 코드를 실행비동기 asynchronous : 실행  중인 코드의 완료 여부와 무관하게 즉시 다음 코드로 넘어감별도의 "요청, 실행 대기, 보류" 등의 기능을 갖는 코드는 모두 비동기적인 코드  비동기 작업의 동기적 표현1. Promise 활용Promise는 처리가 끝나면 알려줘~ 하는 약속임.new 연산자로 호출한 Promise의 콜백함수는 바로 실행됨콜백함수 내부의 resolve(처리 성공) 또는.. 2024. 11. 8.
241107 TIL 함수를 매개변수로 넣을 때 주의할 점 func란 변수에 어떤 함수가 할당돼있다고 할 때, 이 변수를 인자에 넣을 때 func로 넣는 것, func()로 넣는 것, func(인자O)로 넣는 것의 결과가 모두 다르다!! 아래 예시를 보자구// x와 y를 인자로 받는 함수가 상수 add에 할당돼있음const add = function(x, y) { return x + y;}// argu를 인자로 받는 함수가 what_return에 할당돼있음const what_return = function(argu) { let return_val = `${argu}`; console.log(return_val);} 1) 매개변수에 func로 넣는 경우 : "소괄호가 붙지 않았음 = 함수가 실행되지 않음"이므로.. 2024. 11. 7.
깃허브에서 pull requests를 통해 팀원 코드에 댓글 남기기 1. 팀 깃허브에서 Pull requests 탭으로 이동한다. 2. 리뷰할 팀원의 Pull request 기록을 선택한다. 3. Pull request 기록에서 Files changed 탭으로 이동한다. 4. 리뷰할 파일을 선택 후, 댓글을 남길 행의 좌측 + 버튼을 누르고 전할 말을 적는다.Add single comment : 남길 댓글이 하나인 경우, 하나의 코멘트만 남기고 리뷰를 종료함Start a review : 남길 댓글이 여러 개인 경우, 이 위치에 pending 상태의 댓글을 남기고 리뷰를 계속함 (pending = 보류 중) 5. 여러 코멘트를 남긴 후 Finish your review 버튼을 눌러 리뷰를 마친다. 5-1) Finish your review 버튼 누른 후 아래와 같이 진행하.. 2024. 11. 7.
JS문법종합반 정리 3주차 03 - 콜스택, 실행컨텍스트, VE, LE, 식별자정보, 외부환경정보, 호이스팅, 스코프, this, call(), apply(), bind() 콜 스택후입 선출의 보관 방식인 스택. 실행 컨텍스트를 보관하는 방식// ---- 1번 전역은 늘 먼저 스택var a = 1;function outer() { function inner() { console.log(a); //undefined var a = 3; } inner(); // ---- 3번 inner가 스택됨 console.log(a); // 1}outer(); // ---- 2번 outer가 스택됨console.log(a); // 1코드실행 → 전역(in) → 전역(중단) + outer(in) → outer(중단) + inner(in) → inner(out) + outer(재개) → outer(out) + 전역(재개) → 전역(out) → 코드종료실행 컨텍스트코드실행outer() 실행in.. 2024. 11. 7.
241106 TIL - 깊은복사이해하기, RegExp 깊은 복사 함수 이해하기/* 깊은 복사 함수 */let deepCopy_obj = function(key) { let result = {}; // 상위 객체의 프로퍼티가 참조형 데이터고 값이 비어있지 않으면 if (typeof key === 'object' && key !== null) { // 하위 객체의 프로퍼티에 접근해 복사하는데 만약 또 하하위객체가 있으면 재귀 실행 for (let lower_key in key) { result[lower_key] = deepCopy_obj(key[lower_key]); } } else { // 상위 객체의 프로퍼티가 기본형 데이터면 그냥 복사 result = key; } // 깊은 복사 완료된 객체 반환 return.. 2024. 11. 6.
JS문법종합반 정리 3주차 02 - 객체 복제, 얕은 복사, 깊은 복사 객체 복제의 문제점 객체를 변수에 직접 할당하는 식으로 통째로 복제하면, 복제된 객체의 프로퍼티를 변경할지라도 불변성 땜시 기존 객체와 복사 객체가 같다고 판단됨. /* 기존 객체 */var user = { name: 'wonjang', gender: 'male',};/* 객체를 복사하고, name 프로퍼티의 값을 바꾸는 함수 */var changeName = function (user, newName) { var newUser = user; newUser.name = newName; return newUser;};/* 복사 객체 생성 */var user2 = changeName(user, 'twojang');/* name의 값이 다름에도 불구하고 두 객체가 같다고 판단 */console.log(user.. 2024. 11. 6.