목록공부/JavaScript (33)
저장을 습관화
"클래스는 객체를 위한 설계의 틀이고, 객체는 new했을때 메모리 위에 올라가는 프로그램의 기능 단위야." - 친구가 해준 말 클래스 클래스는 객체를 생성하기 위한 일종의 틀(Template)이다. 객체의 공통된 속성(멤버 변수)과 행동(메서드)를 정의한다. 클래스는 추상적이다. 객체의 속성과 행동에 대한 틀을 제공하고, 실제 데이터를 담지 않는다. 객체 객체는 클래스를 기반으로 실제로 메모리에 생성된 것으로, 클래스의 인스턴스이다. 클래스에서 정의한 속성과 행동을 실제 값과 함께 구체화하고 포함한다. 객체는 구체적이며 특별한 특성을 가지고 있다. 메모리 상에 할당되어 실제로 동작하며 데이터를 담고 있다. 다시 정리하면 클래스는 객체를 생성하기 위한 틀로, 객체의 속성과 행동을 정의한다. 객체는 이 클래..

hoist, 호이스트란 '끌어올리는' 이미지이다. 그 동안 함수를 작성할때 코드의 윗 줄에서 작성하고 아랫 줄에서 사용하곤 하였는데 강의를 듣다보니 이와 다르게 아직 함수 선언이 되지 않은 상단 부분에서 함수를 사용하는 코드를 보았다. 이게 어떻게 가능한지 잊지않게 메모한다. 자바스크립트에서 함수 선언은 호이스팅(hoisting)이라는 메커니즘에 의해 이루어진다. 호이스팅은 변수 및 함수 선언을 코드의 맨 위로 올려서 처리하는 것을 의미한다. 즉, 변수와 함수가 선언된 위치와 상관없이 함수를 사용할 수 있다. 이는 코드 실행 전 컴파일러에 의해 처리된다. 함수가 전역 범위에서 선언된 경우 해당 함수는 전역 함수로 간주되어 어디서든 호출할 수 있다. 예시) sayHello(); // 호출 가능 functi..
배열 메소드 .some 배열의 각 엘리먼트에 대해서 검사한 후, 반환 값이 하나라도 true가 있는지 확인한다 하나라도 true가 있다면 true를 반환한다. 모두 false인 경우 false를 반환한다. || (or) 연산자와 같은 조건이다 기존 배열값은 변경되지 않는다 문법 arr.some(function(currentValue, index, array), thisValue)) 예시 var objArr = [{name: '철수', age: 10},{name: '영희', age: 10}, {name: '바둑이', age: 2}] console.log(objArr.some((item)=> item.age>5)); //true console.log(objArr.some((item)=> item.age>10..

const 팩토리얼 = (num) => (num === 0 ? 1 : num * 팩토리얼(num - 1)); 추가 - 서로 다른 n개 중 m개를 뽑는 경우의 수 const 팩토리얼 = (num) => (num === 0 ? 1 : num * 팩토리얼(num - 1)); const cases = (n, m) => { return 팩토리얼(n) / (팩토리얼(n - m) * 팩토리얼(m)); }; console.log(cases(3, 2)); // 3 console.log(cases(5, 3)); // 10 console.log(cases(10, 8)); // 45

자바스크립트가 기본적으로 지원하는 숫자, Number의 범위는 -(2^53)-1 ~ 2^53-1 까지이다. console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991 console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991 수가 이보다 커지면 '절대값이 2^53보다 크거나 같은 숫자 리터럴은 너무 커서 정수로 정확하게 표시할 수 없다' 라는 메세지가 나오며 입력한 숫자가 제대로 계산되지 못하는 에러가 발생하게 된다. console.log(18446744073709551615); // 18446744073709552000 console.log(287346502836570928366); // 2873465028365..
기본 String.fromCharCode() 개념 console.log(String.fromCharCode(65)); // A console.log(String.fromCharCode(97)); // a console.log(String.fromCharCode(65, 66, 67)); // ABC fromCharCode(유니코드 번호)를 입력하면 그와 일치하는 문자가 나오게된다. 유니코드 번호 65부터 90은 대문자 A부터 Z이며 유니코드 번호 97부터 122는 소문자 a부터 z이다. 이를 응용하여 아래와 같이 알파벳 배열을 만들 수 있다. let upperAlphabet = Array(26) .fill() .map((_, i) => String.fromCharCode(i + 65)); // 유니코드 6..
1. 10진수에서 2진수, 8진수, 16진수로 바꾸는 방법 let 십진수 = 1234; let 이진수 = 십진수.toString(2); console.log(이진수); // 10011010010 let 팔진수 = 십진수.toString(8); console.log(팔진수); // 2322 let 십육진수 = 십진수.toString(16); console.log(십육진수); // 4d2 2. 2진수, 8진수, 16진수에서 10진수로 바꾸는 방법 let 이진수 = "10011010010"; console.log(parseInt(이진수, 2)); // 1234 let 팔진수 = "2322"; console.log(parseInt(팔진수, 8)); // 1234 let 십육진수 = "4d2"; console.l..
[내용 출처] https://blacklobster.tistory.com/14 간단간단! 자바스크립트(JS) 문자열, 배열 중복값 제거하기 이전 글에서는 자바스크립트(JavaScript)의 문자열과 배열의 중복값 찾기를 알아보았는데요. 이번에는 중복값을 제거하는 방법에 대해 알아보겠습니다. 즉 최종적으로 제거한 값만 남는 것이죠. blacklobster.tistory.com 1. Set Set 객체는 중복값을 허용하지 않는 특징을 가지고 있다. 그래서 배열을 Set 객체로 변환한 후 다시 배열로 변환하면 중복값이 제거된 배열을 얻을 수 있다. 문자열 또한 마찬가지로 Set을 통해 배열 형태로 만든 다음 join() 메소드를 이용하여 다시 문자열로 변환하면 중복값이 제거된다. // 배열의 중복값 제거 le..

개념 let n = 10; console.log(Array(n)); // [ ] console.log(Array(n).fill()); // [ undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined ] console.log(Array(n).fill().map((_, i) => i + 1)); // [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] 1. 새로운 배열을 생성하는 Array() 함수를 사용, n개의 빈 요소를 가진 배열을 생성 2. fill() 함수를 사용, 각 요소를 '정의되지 않음' 상태로 만듦 3. map() 함수를 사용, '현재 요소는 사..