JavaScript 105

프로그래머스 문자 리스트를 문자열로 변환하기 JS (slice() / join())

문제설명 문자들이 담겨있는 배열 arr가 주어집니다. arr의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성해 주세요. ✅ 내 코드 function solution(arr) { return arr.slice().join('') } 💻 내가 이용한 메서드 1. slice(): 어떤 배열의 begin부터end까지(end미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환 Array.slice(begin, end) 2.join(): 배열의 모든 요소를 연결해 하나의 문자열로 만듦 Array.join(seperator) 🔫 join() 으로 배열을 연결하는 4가지 방법 🔫 var a = ['바람', '비', '불']; var myVar1 = a.join(); // myVar..

프로그래머스 길이에 따른 연산 JS (reduce())

문제 설명 정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요. ✅ 내 코드 function solution(num_list) { const list = num_list; if(list.length >=11){ return list.reduce((a,b) => a +b ,0) } else { return list.reduce((a,b)=> a*b , 1) } } 💻 내가 이용한 메서드 reduce(): 배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결과값을 반환 Array.reduce() array.reduce( (accumu..

프로그래머스 뒤에서 5등까지 JS (sort() / slice())

문제설명 정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요. ✅ 내 코드 function solution(num_list) { return num_list.sort((a,b)=> a-b).slice(0,5) } 💻 내가 이용한 메서드 1. sort(): 배열의 요소를 정렬한 후, 반환 Array.sort() 오름차순 sort((a,b) => a-b) 내림차순 sort((a,b) -> b-a) 2. slice(begin, end): 배열의 begin부터end까지(end미포함) 새로운 배열 객체 반환 Array.slice() 💻 학습한 것 slice()는 end를 미포함한다는 것을 ..

프로그래머스 문자열로 변환 JS (String()/ toString() / +"")

🔍 문자열로 변환 문제설명 정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요. ✅ 내 코드 function solution(n) { return String(n) } 💻 내가 이용한 메서드 String(): 인수로 전달된 값을 문자열로 반환한다. 💻 내가 생각한 다른방법 1. + "" 2. toString() 💻 학습한 것 String()과 toString()의 차이점 ➡️ 활용하는 방법이 다르다 1. String(): 인자로 전달된 값을 문자열로 반환 String(n) 2.toString(): 문자열로 변환할 값을 앞에 적는다 n.toString() 🙋‍♀️ 내 생각 간단한 문제이지만 활용할수 있는 방법이 여러가지이다. 평소에는 거의 toString(..

프로그래머스 가장큰수찾기 JS (Math.max() / indexOf() )

🔍 가장 큰 수 찾기 문제설명 정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요. ✅ 내 코드 function solution(array) { return [Math.max(...array), array.indexOf(Math.max(...array))]; } 💻 내가 이용한 메서드 1. Math.max(): 가장 큰수를 찾는다. 2. indexOf(): 인덱스를 찾는다. 💻 학습한 것 1. Math.max(): 배열을 인수로 받지 않는다 -> ...전개연산자를 이용해서 배열을 각각의 값으로 분리해야한다. 2. indexOf(): array.indexOf(찾고싶은값)의 형태로 사용한다. 🙋‍♀️ 내 생각 처음..

즉시실행함수 (IIFE)

1. 정의 IIFE (IIFE, Immediately Invoked Function Expression) 함수 정의와 동시에 즉시 호출 되는 함수 🔫 언제 사용? 🔫 ✅ 단 한번만 사용할 함수 ✅ 자바스크립트 모듈 2. 형식 //익명 즉시 실행함수 (function () { var a = 3; var b = 5; return a * b; })(); - 이름이 없는 익명함수를 사용하는것이 일반적 (이름이 있는 기명 즉시 실행 함수도 사용은 가능하지만, 어차피 다시 호출할 수는 없다.) 3. 사용이유 1️⃣ 필요없는 전역 변수 생성 ❌ ➡️ 전역 스코프 오염 ❌ (IIFE ➡️ 내부변수가 전역으로 저장되지 않음) 2️⃣ private한 변수 생성 외부에서 접근할 수 없는 자체 스코프, 내부를 private하..

JavaScript/JS 2023.03.23

자바스크립트 클로저란? (JS Closure)

1. 클로저란? 클로저는 자신이 선언될 당시의 환경을 기억하는 함수 클로저는 함수 + 함수가 선언된 렉시컬 환경과의 조합 클로저를 이해하기 위해서는 실행컨텍스트와 렉시컬환경이라는 개념을 이해하는것이 우선된다. 이것에 대해서는 이전글에서 따로 정리를 해두었다. 자바스크립트 실행컨텍스트/ 렉시컬환경(환경레코드,외부환경참조) 1️⃣ 실행컨텍스트 코드를 실행하는데 필요한 환경을 제공하는 객체 (환경: 코드 실행에 영향을 주는 조건이나 상태) 식별자결정을 더욱 효율적으로 하기 위한 수단 모든 자바스크립트의 모든 hihiha2.tistory.com ✅ 특징: 해당함수의 생명주기가 종료되더라도 참조가능 ✅ 원리: 실행컨택스트의 렉시컬환경에 정보가 남음 일반적으로 함수가 실행되고 나면 실행콘텍스트의 콜스택에서 제거가 ..

JavaScript/JS 2023.03.02

자바스크립트 실행컨텍스트/ 렉시컬환경(환경레코드,외부환경참조)

1️⃣ 실행컨텍스트 코드를 실행하는데 필요한 환경을 제공하는 객체 (환경: 코드 실행에 영향을 주는 조건이나 상태) 식별자결정을 더욱 효율적으로 하기 위한 수단 모든 자바스크립트의 모든것은 실행컨텍스트 내에서 발생한다. 이 실행컨텍스트는 전체 자바스크립트 코드가 실행되는 큰 상자 또는 컨테이너라고 가정할 수 있다. 자바스크립트를 실행시키면 자바스크립트 엔진은 콜스택이라는 통에 전역실행컨텍스트를 담는다. 만약 전역에서 함수A를 호출할 경우, 함수A의 실행 컨텍스트를 생성해서 또 스택에 담는다. (가장 상위에 있는 실행컨텍스트가 현재 활성화된 실행컨텍스트이다) 1 함수를 호출한 후 순서대로 나열하면, 호출된 함수에 2 실행컨텍스트를 생성하고 이를 3 실행컨텍스트 스택에 push한다. 그 후 함수는 본인의 4..

JavaScript/JS 2023.03.01

자바스크립트 함수선언식 / 함수표현식

1. 자바스크립트의 함수정의 4가지 자바스크립트에서 함수를 정의하는 방법에는 4가지가 있다. 1. 함수 선언식 2. 함수 표현식 3. Function 생성자 함수 4. 화살표 함수 (ES6) case 1 :함수 선언식 function add(x,y){ return x+y; } case 2: 함수 표현식 var add = function(x,y){ return x + y; } case 3: Function 생성자 함수 var add = new Function('x','y', 'return x+y'); case 4: 화살표 함수(ES6) var add = (x,y) => x+y; 2. 함수선언식과 함수표현식의 차이 1️⃣ 형식 함수선언식 function 함수명() { 구현 로직 } 함수표현식 var 함수명 ..

JavaScript/JS 2023.02.27

자바스크립트 객체, 구조분해할당

1. 자바스크립트 객체의 형태 {key: value} property 자바스크립트의 객체는 태그와 같은 역할을 하는 key와 거기에 실질적인 값이 들어있는 value로 구성되어있다. 이러한 key + value의 값을 합쳐서 property라고 한다. const user = { id: 1, name: "hihi" } user라는 이름을 가진 객체이다. id와 name이 key값이고, 1과 hihi가 각각의 키에 들어있는 value이다. 🤔 객체의 key값으로 가능한 4가지 형태 1️⃣ 그냥 써주기 { id: 1 } 위의 코드에서 id가 key값이다. 이런 것처럼 키값을 그냥 써주면 된다. 2️⃣ "" (쌍따옴표) 안에 써주기 { "my name": "hihi" } 위의 코드에서는 my name이 key값..

JavaScript/JS 2023.02.26