분류 전체보기 47

자바스크립트 클로저란?

자바스크립트 클로저란 외부함수에서 내부함수가 선언 되었고, 내부함수가 외부함수 실행컨텍스트 내 변수값을 참조하고 있을시, 외부함수가 소멸되어도 내부함수는 클로저 스코프를 통해서 외부함수의 변수값을 계속해서 접근 할 수 있음을 의미한다. function outter(){ let text = 'hello world'; function inner(text2){ console.log(text + text2); } return inner; } let closure = outter(); closure('closure'); //hello worldclosure inner 함수를 리턴하는 outter 함수를 변수 closure에 할당하고 closure 함수에 'closure' 라는 문자열을 인자값으로 호출했을시 결과값..

Javascript 2022.09.10

자바스크립트 호이스팅이란? TDZ Temporal Dead Zone

호이스팅이란 인터프리터가 변수와 함수의 메모리 공간을 선언전에 미리 할당을 하는것을 뜻한다. 쉽게 표현하면 스코프 내부 어디서든 변수선언은 최상위에 선언된것처럼 보여진다. 여기서 말하는 스코프란 변수에 접근할수 있는 범위를 뜻한다. 즉 전역 스코프에 선언된 변수는 전역에서 접근이 가능하고 , 지역 스코프에 선언된 변수는 해당 지역 스코프내에서 접근이 가능하다. 다시 호이스팅에 대해 알아보자면, 호이스팅을 확인 할 수 있는 부분은 var 변수와 , 함수 선언문이 있다. var 변수부터 알아보면 console.log(variable); // undefined var variable = 'hello world'; variable이라는 변수가 선언되고 "hello world" 라는 스트링으로 할당 되기전에 콘솔..

Javascript 2022.09.07

완전탐색(Brute Force) 멘토링

현수네 반 선생님은 반 학생들의 수학점수를 향상시키기 위해 멘토링 시스템을 만들려고 합니 다. 멘토링은 멘토(도와주는 학생)와 멘티(도움을 받는 학생)가 한 짝이 되어 멘토가 멘티의 수학공부를 도와주는 것입니다. 선생님은 M번의 수학테스트 등수를 가지고 멘토와 멘티를 정합니다. 만약 A학생이 멘토이고, B학생이 멘티가 되는 짝이 되었다면, A학생은 M번의 수학테스트에서 모두 B학생보다 등수가 앞서야 합니다. M번의 수학성적이 주어지면 멘토와 멘티가 되는 짝을 만들 수 있는 경우가 총 몇 가지 인지 출력하는 프로그램을 작성하세요. 1) 입력 첫 번째 줄에 반 학생 수 N(1

알고리즘 2022.09.06

자바스크립트 문자열 압축 알고리즘

알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오.(단 반복회수가 1인경우 생략) 입력예제 AAABBBBCDDDD 출력예제 A3B4CD4 function solution(s) { let result = ""; let count = 1; for (let i = 0; i 1) { result = result + s[i] + String(count); count = 1; } else { result = result + s[i]; } } }..

알고리즘 2022.09.01

[리액트 네이티브] 맥북 Mac os 맥환경 m1 m2 React native CLI 리액트 네이티브 환경 구축 하기

React native CLI 환경 구축하기 1) Rosetta2 설치하기 Rosetta 2를 사용하면 Intel 프로세서가 장착된 Mac용으로 제작된 앱을 Apple Silicon이 장착된 Mac에서 사용할 수 있습니다. Rosseta가 필요한 앱을 처음 열때 Rosetta를 설치하라는 메시지가 나옵니다. 설치 버튼을 눌러서 설치를 진행해주시면 됩니다. 아래는 혹시나 해당 설치메시지가 뜨지 않으신분들을 위한 수동 설치 하는법 입니다. //라이센스 동의가 필요 softwareupdate --install-rosetta //라이센스 자동으로 동의 /usr/sbin/softwareupdate --install -rosetta --agree-to-license 로제타 관련해서 더 자세히 알아보기 2) Xcod..

React-Native 2022.08.21