FrontEnd
[JS] DeepDive(13) 스코프
스코프(유효범위)는 사실 자바스크립트 뿐 아니라 모든 프로그래밍 언어의 기본적이지만 중요한 개념이다. 특히 JS의 스코프는 다른 언어의 스코프와 구별되는 특징이 있어서 주의가 필요하다. 예를들어 var,let,const로 선언한 변수의 스코프가 다르다. 스코프의 간단한 예시를 보자. function add(x,y) { console.log(x,y); return x+y; } add(2,5); console.log(x,y); 함수의 매개변수를 보자. 함수의 매개변수는 함수 몸체 내부에서만 참조할 수 있고 함수 몸체 외부에서는 참조할 수 없다. 매개변수의 스코프가 함수 몸체 내부로 한정되기 때문이다. 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효범위가 정해진다. 스..
[JS] DeepDive(12) 함수
함수는 자바스크립트에서 가장 중요한 핵심 개념 중 하나이다. 자바스크립트의 핵심 개념들인 스코프,실행컨텍스트,클로저,생성자 함수에 의한 객체 새성 ,메서드 this , 프로토타입,모듈화 등등 모두 함수와 직간접적으로 관련이 있기 때문에 자바스크립트를 정확히 이해하고 사용하기 위해서는 함수에 대한 이해가 필수이다. 사실 프로그래밍 언어의 함수의 기본개념은 수학과 크게 다르지 않다. function add(x,y) { return x + y; } add(2,5) 함수에 대한 문법은 크게 설명하고 넘어가지는 않을 것 같다! 함수는 필요할 때 여러번 호출할 수 있고 몇번이고 호출할 수 있으므로 코드의 재사용 측면에서 아주 유용하다. 함수를 사용하지 않고 같은 코드를 중복해서 사용하면 그 코드를 반복해서 적어야 ..
[JS] 최댓값과 최솟값
split함수를 활용해서 공백으로 만든 이후, Math의 내장함수 min과 max를 활용해서 최소,최대 값을 빼내주었다. `` 를 활용해서 문자열을 만들어 반환해서 해결하였다. function solution(s) { const ary = s.split(" ") return `${Math.min(...ary)} ${Math.max(...ary)}` }
[JS] 최솟값 만들기
두배열 중 하나는 오름차순, 하나는 내림차순으로 정렬한 이후 인덱스대로 서로 곱해서 더해주면 최소값이 나온다. 수학적으로 이유는 잘 모르겠지만 예시 케이스들에서 규칙을 보고 해보니 정답이 적용이 되었다. function solution(A,B){ A.sort((a,b) => a-b) B.sort((a,b) => b-a) let ret = 0 for (let i = 0 ; i < A.length ; i++) { ret += A[i] * B[i] } return ret }
[JS] 전화번호 목록
접두사가 있는지 확인하기 위해서는 우선 전화번호부에 짧은 번호부터 등록되어 있어야 확인할 수 있다. 따라서 전화번호부를 길이순으로 정렬한 이후, 검사해주었다. function solution(phone_book) { phone_book.sort((a,b) => a.length-b.length) const map = new Map() for (const phone of phone_book){ let number = "" for (const n of phone){ number += n if (map.get(number)) return false } map.set(phone,true) } return true }
[JS] DeepDive(11) 원시 값과 객체의 비교
이전 "데이터 타입" 에 대해서 공부했었듯이 JS에서 제공하는 데이터 타입은 원시타입과 객체 타입으로 나누어져 있다. 이 두 타입을 비교하면서 한번 알아보자. 원시타입과 객체 타입은 크게 세가지 측면에서 다르다. 1. 원시 타입의 값, 즉 원시 값은 변경 불가능한 값이다. 이에비해 객체(참조) 타입의 값, 즉 객체는 변경 가능한 값이다. 2. 원시값을 변수에 할당하면 변수에는 실제 값이 저장되지만 객체를 변수에 저장하면 변수에는 참조값이 저장된다. 3. 원시값을 갖는 변수를 다른 변수에 할당하면 값에의한 전달 즉 깊은복사가 진행되지만 객체를 가리키는 변수를 할당하면 참조에 의한 전달 즉 얕은 복사가 진행되게 된다. 원시 값 원시 값은 변경 불가능한 값이다. 한번 생성된 원시값은 읽기 전용이란 말이다. 여..