Small Grey Outline Pointer 'Dev.' 카테고리의 글 목록 (4 Page)
본문 바로가기

Dev.218

[인간JS되기] 스코프 체인 제로초님 강의 보고 정리 중 [인간 JS 엔진 되기 1-4] 스코프 체인 정의: 식별자의 유효 범위 일종의 리스트로서 전역 객체와 중첩된 함수의 스코프의 레퍼런스를 차례로 저장하고, 의미 그대로 각각의 스코프가 어떻게 연결(chain)되고 있는지 보여주는 것 스코프 체인을 간단히 설명하면 '함수에서 어떤 값에 접근이 가능한가 불가능한가' ES2015 기준으로 그 이전까지는 함수가 기준이었지만, 그 후로는 { } 블록이 기준이 되었다 함수가 아닌 블록들 if() {} for() {} while() {} 등등.... 그 외에도 { } 그냥 이렇게만 있는 블록도 있는데 객체가 아니므로 주의! => 이걸 객체로 만들고 싶으면 ({ }) 이렇게 소괄호로 감싸서 사용 //객체를 리턴하는 함수가 아니라, 블럭이다 c.. 2023. 3. 6.
[인간JS되기] 자바스크립트 호출 스택 제로초님 강의 보고 정리한 것 [인간 JS 엔진 되기] const x = 'x'; function c(){ const y = 'y'; console.log('c'); } function a(){ const x = 'x'; console.log('a'); function b(){ const z = 'z'; console.log('b'); c(); } b(); } a(); c(); 함수가 여러개 얽혀있는 코드가 있다 실행을 돌려보지 않아도 결과가 어떻게 나오는지, 어떤 함수에서 어떤 변수에 접근이 가능한지 코드를 보고 미리 예측을 할 수 있어야 한다 결과는 a(); // a, b, c c(); // c 자바스크립트 코드, 프로그래밍 코드들을 볼 때 주의할 점이 있다 일반적으로 코드는 위에서 아래, 왼쪽에서 .. 2023. 3. 3.
[인간JS되기] 함수와 함수의 호출, 고차함수 제로초님 유튜브 보고 공부 함수와 함수의 호출 const add = (a,b) => a+b; //함수의 기본 형태(여기선 화살표함수로 표현) function calculator(func, a, b){ return func(a,b); } 함수 두 개를 만들어 준다 함수 add 함수 calculator const add = (a,b) => a+b; /* //위의 코드는 리턴이 생략되어 있다 풀어 쓰면 아래 코드 const add = (a,b) => { retun a+b; }; */ /* 객체 리턴 할 때 const add = (a,b) => ({a+b}); //이렇게 해야 함 const add = (a,b) => {a+b}; // 소괄호로 감싸주지 않으면 다른 결과가 나옴 */ 이 때 add함수에는 retu.. 2023. 2. 26.
프로그래머스 숫자 비교하기 - js 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요. 나의 풀이 function solution(num1, num2) { if (num1 == num2){ return 1; } else{ return -1; } } 다른 사람의 풀이 function solution(num1, num2) { return num1 === num2 ? 1 : -1; } 삼항연산자 쓸 생각을 안하고 if문부터 돌렸는데 다른 사람 풀이 보니까 다시 생각이 난다 2023. 2. 20.
프로그래머스 코딩테스트 연습 [세균증식] - js 문제 설명 어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요. 나의 풀이(오답) function solution(n, t) { var answer=0; return answer=Math.pow(n,(t+1)); } 처음에는 n**t 만 생각하고 제출 했더니 오답 나와서 Math.pow를 써봤다가 결국 다 틀렸다 *입력 된 n값에 t시간 동엔 2배씩 증가 t시간 동안 2배씩 증가한다는 것을 고려 안하고 제곱만 생각해서 계속 오답이 나왔다 => return n*(Math.pow(2,t)); => return n * (2 ** t); 다른사람의 풀이 reduce cons.. 2023. 2. 20.
프레임워크와 라이브러리 프레임워크와 라이브러리 프레임워크 소프트웨어에서의 프레임워크는 ‘소프트웨어의 특정문제를 해결하기 위해서 상호협력하는 클래스와 인터페이스의 집합’ 프레임워크는 소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 소프트웨어의 구체적인 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화 된 형태로 제공하는 소프트웨어 환경을 말한다. 애플리케이션 개발 시 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능을 위해 어느정도 뼈대를 제공해주는 것이다. 그리고 그러한 뼈대 위에 개발자가 코드를 작성하여 애플리케이션을 완성해야 한다. 어느정도 뼈대를 제공해주기 때문에 객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법 중 하나라고 할 수 있다. 프레임워크.. 2022. 12. 11.
프로그래머스 [JavaScript] Lv.0 :: 종이자르기 https://school.programmers.co.kr/learn/courses/30/lessons/120922 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다. 정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요. 나의 풀이 function solution(M, N) { var Ma; var N.. 2022. 11. 30.
프로그래머스 [JavaScript] Lv.1 :: 자연수 뒤집어 배열로 만들기 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 나의 풀이 (오답) function solution(n) { var answer = []; var m=String(n); #문자열로 변환하기 for(let i=m.length; i>=0; i--){ answer.push(m[i]); } return answer; } 맨 처음에 이렇게 풀었는데 코드 실행하니까 에러 떠서 다시 생각해봤다 숫자를 하나씩 쪼개야 하기 때문에 문자열로 변환하고 배열의 마지막 인덱스 부터 인덱스[0] 까지 순서대로 담으면 되는 것 까지는 알겠다 여기까지는 문자열로 변환 된 '1' '2' 이런 상태 그대로 배열에 담기기 때문에 출력 .. 2022. 11. 22.
프로그래머스 [JavaScript] Lv.1 :: 평균 구하기 나의 풀이 function solution(arr) { var answer = 0; for(let i=0; i a + b) / array.length; } 생각나는게 for문 밖에 없어서 for문 이용해서 문제 풀고 나니까 다른 사람들 풀이 중에 reduce로 문제 푼 방식이 있길래 reduce에 대해 찾아봤다 reduce() 배열의 각 요소를 순회하며 콜백함수의 실행 값을 누적한 합산 값을 반환한다 arr.reduce(callback[, initialValue]) callback 함수가 가지는 4가지 인수 - accumulator 반환값 누적 [필수] initalValue를 설정했을 경우 최초 호출 시 initalValue 값을 제공, 설정하지 않았을 경우 초기값은 배열의 첫번째 요소 - cuurent.. 2022. 11. 22.
리액트 에러 :: Uncaught SyntaxError: Unexpected token '<' 로컬에서는 화면이 제대로 보였는데 배포한 사이트에 접속하니 빈 화면만 보였다 에러 메세지 구글링 해서 해결 1. head 태그 안에 아래의 코드 추가 하기 2. index.html 파일 내에 script 태그 수정하기 깃허브 레파지토리에 와서 index.html 파일을 열어서 수정 했다 ./static 앞에 . 을 지워주기 빈 화면에서 다시 제대로 보이게 됐다 2022. 11. 4.