728x90
사용자에게 입력받기const readline = require('readline');const rl = readline.createInterface({ input: process.stdin, output: process.stdout});let input = [];function getInput() { console.log(); process.stdout.write("> YYYY-MM-YY 형식으로 날짜를 입력해주세요. "); rl.once("line", (line) => { input = line.trim().split("-").map(Number); if (isValid(input)) { rl.close(); main(input); } else { ..
StackStack⸰ 선형 자료형⸰ LIFO(Last In First Out)⸰ 이전의 작업 내용을 저장해 둘 필요가 있을 때 사용class Stack{ constructor(){ this.stack = [] } push(item){ this.stack.push(item) } pop(){ return this.stack.pop() } peek(){ return this.stack[this.arr.stack-1] }}const stack = new Stack();stack.push(1);stack.push(2);stack.push(3);stack.pop(); // 3push(): 데이터 삽입pop(): 데이터 추출..
random( )random( )⸰ 0부터 1 미만까지 무작위로 부동소수점의 난수를 추출Math.random() * (최댓값 - 최솟값) + 최솟값; ⸰ (최댓값 - 최솟값) : 원하는 범위의 숫자 개수⸰ + 최솟값 : 시작하는 숫자 ⸰ 자연수로 바꿔주려면,Math.floor(Math.random() * (최댓값 - 최솟값) + 최솟값); Math.floor(Math.random( ))0 0, 1Math.floor(Math.random( ) * (10 - 1) + 1)1 1 ~ 10Math.floor(Math.random( ) * (10 - 3) + 1)3 3 ~ 10
substr( ) / substring( ) / slice( )substr(startIdx, length)⸰ startIdx 부터 length 길이만큼 string 에서 잘라서 반환⸰ 기존 배열 업데이트 Xlet str = "네이버 부스트캠프";let result = str.substr(2, 5);console.log(str); // 네이버 부스트캠프 console.log(result); // 버 부스트substring(startIdx, endIdx)⸰ startIdx 부터 endIdx 전까지 string 에서 잘라서 반환⸰ startIdx > endIdx 인 경우 : startIdx 값과 endIdx 값을 바꾸어 처리 ⸰ startIdx ⸰ 기존 배열 업데이트 Xlet str = "네이버 ..
아스키코드 변환// 문자열 => 아스키코드 값"문자열".charCodeAt([문자열 자릿수]);// 아스키코드 값 => 문자열String.fromCharCode(아스키코드 값);33!64@95_34"65A96`35#66B97a36$67C98b37%68D99c38&69E100d39'70F101e40(71G102f41)72H103g42*73I104h43+74J105i44,75K106j45-76L107k46.77M108l47/78N109m48079O110n49180P111o50281Q112p51382R113q52483S114r53584T115s54685U116t55786V117u56887W118v57988X119w58:89Y120x59;90Z121y6091[122 z61=92\123{62>93]124|63?9..
[마스터 개념] 9 | 클로져, this1 variable 변수2 operator 연산자3 function 함수4 object 객체5 class 클래스7 built-in 빌트인 객체8 array 배열9 iterator 이터러블10 map11 more-operators 유용한 연산자들12 module 모듈13 promise 프로미스14 scope 스코프15 prototype 프로토타입16> closure 클로져17> this 15 closure 클로져클로져 내부 함수가 외부 함수의 변수를 기억하게 한다. 즉, 외부 함수가 호출되어 실행된 후에도 내부 함수는 외부 함수의 변수에 접근할 수 있다. 외부에서는 그 변수를 직접 접근할 수 없도록 만들어 준다.> 변수를 보호, 상태의 캡슐화 function oute..
[마스터 개념] 8 | 스코프, 프로토타입1 variable 변수2 operator 연산자3 function 함수4 object 객체5 class 클래스7 built-in 빌트인 객체8 array 배열9 iterator 이터러블10 map11 more-operators 유용한 연산자들12 module 모듈13 promise 프로미스14> scope 스코프15> prototype 프로토타입16 closure 클로져17 this 14 scope 스코프 코드 블럭 : { }, if( ) { }, for( ) { }, function( ) { } 스코프가 존재하는 이유는 이름 충돌 방지, 메모리 절약 때문이다. 블럭 외부에서 블럭 내부의 변수를 참조할 수 없다. 블럭이 끝나면 자동으로 garbage co..
[마스터 개념] 7 | 프로미스1 variable 변수2 operator 연산자3 function 함수4 object 객체5 class 클래스7 built-in 빌트인 객체8 array 배열9 iterator 이터러블10 map11 more-operators 유용한 연산자들12 module 모듈13> promise 프로미스14 scope 스코프15 prototype 프로토타입16 closure 클로져17 this 13 promise 프로미스callstack 자바스크립트는 동기적으로 수행된다. 따라서 무겁고 오래 걸리는 작업을 수행하기에는 적합하지 않다. 동기적 : 직렬, 작업이 종료될 때까지 기다린 후 다음 작업을 수행하는 방식 비동기적 : 병렬, 다른 작업을 하고 있다가, 요청했던 작업이 종료되면 ..