본문 바로가기

JS57

JS, readline 모듈을 이용해 입력값 받기 [ readline ] Readable Stream에서 한 번에 한줄 씩 데이터를 읽기 위한 인터페이스를 제공하는 모듈 즉 입출력을 한줄씩 처리하는 모듈이라고 생각하면 됨 [ 기본 사용법 ] ▶ readline 모듈 불러오기 const readline = require("redaline"); require 메서드 다른 파일이나 모듈을 불러오는 함수 readline 모듈 Node.js의 내장모듈 사용자의 input을 받는 인터페이스 제공 ▶ 인터페이스 생성하기 const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); process.stdin , process.stdout ‘process’ 객체 : 현재 실행.. 2023. 6. 15.
JS, 호이스팅 [ 호이스팅 ] 코드가 런타임 이전 변수선언/함수선언이 해당 스코프의 최상단으로 끌어올려진 것 같은 현상을 말함 호이스팅은 변수 정보 수집 과정을 이해하기 쉽게 설명한 가상 개념(실제로는 그렇진 않더라도 사람이 이해하기 쉬운 말로 풀어 표현한 것) 해당 스코프에서 최상단으로 끌어올리는 것이기 때문에 함수 내에서 변수가 선언되었다면 함수 최상단으로, 전역 컨텍스트에서 변수가 선언되었다면 전역 컨텍스트 최상단으로 끌어올려짐 호이스팅이라는 용어가 ‘선언이 먼저 메모리에 저장되었다.’는 것을 의미함 자바스크립트의 모든 선언에는 호이스팅이 일어남 호이스팅이 파일의 맨 위로 끌어올려진 것 같은 현상을 의미할 때 선언문 이전에 참조해서 에러(ex. ReferenceError)를 발생시킨다고 호이스팅이 일어나지 않은 .. 2023. 6. 15.
JS, slice와 splice [ slice ] slice는 특정 범위를 복사한 값들을 담고 있는 새로운 배열을 만드는데 사용 인자로 시작 인덱스(index), 종료 인덱스(index)를 받으며 시작 인덱스부터 종료 인덱스의 전까지 값을 복사하여 반환함(원본 배열은 바뀌지 않음) 즉 시작 인덱스가 가리키는 값은 포함하지만, 종료 인덱스가 가리키는 값은 포함하지 않는 다는 것 -값을 넣는다면 뒤에서 부터 셈 시작 인덱스만 적는다면 시작 인덱스부터 배열의 마지막 인덱스까지 반환함 시작 인덱스도 인자로 주지 않으면 처음 값부터 마지막 값까지 전체를 복제 nums = Array(20).fill().map((_, i) => i) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17.. 2023. 6. 10.
JS, Array의 min, max값 찾기 [ Array에서 min, max 원하는 값 얻기 ] const nums = [1, 2, 3] Math.min(nums) // NaN Math.max(nums) // NaN 숫자의 배열을 가지고 있고 그 안의 최소값과 최대값을 찾을때 Math.min, Math.max 메서드에 배열을 넘기면 원하는 값이 나오지 않음 이유는 Math.min 또는 Math.max 함수는 배열이 아니라 고유한 변수를 기대하기 때문에 결과값으로 NaN이 나오게 됨 그래서 숫자의 배열을 가지고 있고 그 안에서 최소값과 최대값을 찾고자 한다면 다음과 같은 방법을 사용하면 됨 ▶ apply 사용 let nums = [1, 2, 3] Math.min.apply(Math, nums) // 1 Math.max.apply(Math, nums.. 2023. 6. 5.
JS, map & filter & reduce [ map ] 호출 배열의 모든 요소에서 제공된 함수를 호출한 결과로 채워진 새 배열을 만듬 콜백함수를 이용해 각각의 요소를 호출해서 값을 변환. 즉 콜백함수가 배열의 각 요소에 실행됨 ▶ map() 메소드 구문 arr.map(function(currentValue, index, arr), thisValue); currentValue : 배열 내 현재 값(요소 값) index : 배열 내 현재 값의 인덱스(인덱스) array : 현재 배열(순회하는 대상객체) thisValue: callbackFunction 내에서 this로 사용될 값 ▶ map() 예시 예시1 function multip(numbers) { return numbers.map(function (x) { return x * 2; }); }.. 2023. 5. 30.
JS, 문자를 숫자로& 숫자를 문자로 [ 문자를 숫자로 ] ▶ Number() 인자로 전달된 문자열을 Number로 변환 숫자가 아닌 문자나 undefined 등을 인자로 전달하면 NaN(Not A Number)을 리턴 → NaN의 의미는 숫자가 아니지만 NaN의 객체 타입은 number임 console.log(Number("1234") + ', ' + typeof(Number("1234"))); //1234, number console.log(Number("1234.5") + ', ' + typeof(Number("1234.5"))); //1234.5, number console.log(Number(undefined) + ', ' + typeof(Number(undefined))); //NaN, number console.log(Numbe.. 2023. 5. 30.
JS, 문자 혹은 문자열 찾기 [ 문자 혹은 문자열 찾기 ] ▶ includes() 지정된 값이 포함하고 있는지의 여부를 Boolean(있을경우 true, 없을경우 false)값으로 반환 대/소문자를 구분하며 undefined도 찾을 수 있음 예시1 const num = ["일", "이", "삼", "사", "오"]; console.log(num.includes("일"));//true console.log(num.includes("육"));//false 예시2 const num = "일이삼사오" console.log(num.includes("삼사")); //true console.log(num.includes("육")); //false ▶ split() 문자열을 분할하는 메소드 분할하는 것을 이용하여 원하는 문자열이 있는지 여부를 찾.. 2023. 5. 27.
JS, 문자열을 배열로&배열을 문자열로 [ 문자열을 배열로 ] ▶ split string을 여러가지 문자열로 잘게 나눠주는데, 전달된 구분자를 받아서 사이에 껴줌 limit 값을 입력하게 되면, return 받을 배열의 사이즈를 지정할 수 있음 예제1 const fruits = "apple, banana, orange"; let result = fruits.split(); //["apple, banana, orange"] let result2 = fruits.split(","); //["apple", "banana", "orange"] let result3 = fruits.split(",", 2); //["apple", "banana"] 예제2 const str = 'hello world javascript'; let arr = str.spl.. 2023. 5. 27.
JS, Math. [ Math ] 다른 객체와 달리 Math 객체에는 생성자가 없음 Math 개체는 정적. Math 객체를 먼저 생성하지 않고도 모든 메서드와 속성을 사용할 수 있음 ▶ 정적 속성 Math.E: 오일러의 수와 자연 로그의 밑; 대략 2.718. Math.LN10: 자연로그 10; 대략 2.303. Math.LN2: 자연로그 2; 대략 0.693. Math.LOG10E: 밑이 10인 로그 E; 대략 0.434. Math.LOG2E: 밑이 2인 로그 E; 대략 1.443. Math.PI: 지름에 대한 원의 둘레 비율; 대략 3.14159. Math.SQRT1_2: ½의 제곱근; 대략 0.707. Math.SQRT2: 제곱근 2; 대략 1.414. ▶ 정적 메소드 Math.abs(): 절대값을 반환 Math.c.. 2023. 5. 26.