목록전체 글 (118)
상권's
재귀 1. 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우 2. 중첩된 반복문이 많거나 반복문의 중첩 횟수(number of loops)를 예측하기 어려운 경우 재귀적으로 사고하는 법 function arrSum(arr) { // 1. 먼저 입력값과 출력값에 대해서 정의한다. => arr는 숫자로 구성된 배열이며, 이 함수를 통해서 // 배열의 모든 값을 더해서 숫자로 리턴한다. arrSum: [number] => number // 2. 문제를 쪼개 본다. 먼저 파라미터로 받는 배열이 [1, 2, 3, 4] 일 경우, // 맨 마지막에 진행되어야 할 함수부분은. 1 + [2, 3, 4] // 가장 처음에 진행되어야 할 부분은 [4] 인데, 여기에서 또 자르게 되면 [] 만 남게 된다. /..
클래스와 인스턴스라는 용어를 이해할 수 있다. - new 키워드의 사용법을 이해할 수 있다. - 클래스를 선언한 뒤, 변수에 사용할 때, new class명을 넣으면 인스턴스가 만들어집니다. class 키워드의 사용법을 이해할 수 있다. -새로운 클래스를 선언할 때 사용합니다. 현실 세계의 모델을 바탕으로 클래스의 메소드와 속성을 디자인할 수 있다. - 아래 코드를 예시로 들어서 기본적인 차가 가져야할 기능들을 만들어줍니다. car 클래스를 이용해서 Truck 클래스를 만들어주고, porter라는 인스턴스가 만들어지면 Car와 Truck의 기능들을 다 가진다. class Car { // Car라는 클래스를 만들기 위해서 class를 입력한다. constructor(brand, name, color) { ..
지난 8월 31일부터 시작했던 코드스테이츠 SE 부트캠프 34기 섹션 1이 9월 28일, 29일 치러졌던 HA를 마지막으로 끝이 났습니다. 한 달이 조금 넘는 기간 동안 학습의 재미와 성취감도 느끼긴 했지만 '내가 이렇게 부족하구나'라는 좌절을 많이 했었던 거 같습니다. 지금은 계속 복습을 하면서 많이 익숙해졌지만, 처음에는 전날 배웠던 거도 기억이 나질 않아서 다시 찾아봐야 했었고, 사소한 실수 때문에 에러가 발생하는 일이 일상다반사였습니다. 학습 내용을 정리할 때에도, 일정이 급하니깐 간단하게만 정리하니 다음에 봤을 때 이해하기 어려웠습니다. 어떻게 해야지 나아질 수 있을까 고민을 했습니다. 먼저, 학습 내용을 정리하는 방법을 바꿨습니다. 시간이 조금 더 들더라도, 학습 내용을 정리할 때에는 기본적인..
스코프란 스코프는 범위의 뜻을 가지고 있습니다. 자바스크립트에서 사용되는 스코프는 함수나 중괄호에 의해서 변수에 접근할 수 있는 범위를 뜻합니다. 스코프의 주요 규칙 1. 중첩 규칙 - 가장 바깥의 스코프는 전역스코프이며, 전역스코프의 반대는 지역스코프입니다. 이처럼 전역스코프 내의 지역스코프들이 중첩이 될 수 있습니다. 지역스코프 내에서도 지역스코프가 중첩될 수 있습니다. ※ 변수 접근 규칙에 따른 유효 범위 - 바깥 범위(전역스코프)에서 선언된 변수는 안의 범위(지역스코프)에서도 접근이 가능하지만, 반대로 안의 범위(지역스코프)에서 선언된 변수에는 바깥(전역스코프)에서 접근할 수 없습니다. 2. block scope와 function scope - block scope는 중괄호에 의해서 정해지는 범위..
원시자료형은 string, number, bigint, boolean, undefined, symbol, (null)을 말합니다. 이러한 원시자료형은 변수에 하나의 데이터만 담을 수 있습니다. 하지만 개발을 하면서 많은 양을 담아야 할 경우, 변수에 담을 수 있는 양이 정해져 있다면 데이터를 담기 어려워집니다. 그래서 참조자료형이 생겼습니다. 참조자료형에는 객체, 배열, 함수 등이 있습니다. 이러한 참조자료형은 변수에 heap에 담겨 있는 주소가 할당됩니다. 이를 통해서 변수를 호출하게 되면 주소에서 데이터를 불러와 많은 양은 데이터도 처리할 수 있습니다. 원시자료형이 할당될 때에는 변수에 값(value) 자체가 담기고, 참조자료형이 할당될 때는 보관함의 주소(reference)가 담깁니다. a = 1,..
const obj = { id: 1, city: 'changwon', country: 'korea', name: 'sangkwon', }; const arr = [ ["id", 1], ["city", "changwon"], ["country", "korea"], ["name", "sangkwon"] ], 이러한 객체와 배열이 있을 경우, 객체를 배열의 모양으로, 배열을 객체의 모양으로 바꾸는 코드를 구현해보겠습니다. function objToArr(obj) { return Object.entries(obj); function arrToObj(arr) { //for (let i = 0; i < arr.length; i = i + 1 ) { // for (let n = 0; n < arr[i].length;..
객체는 중괄호({}) 속에 key 와 value를 넣어서 만들 수 있습니다. obj = {'name': 'sangkwon', 'city': 'daegu'} key value key value 객체의 속성을 추가, 조회, 변경, 삭제하기 [조회] object = { name: 'sangkwon', age: 30, city: 'changwon' } 해당 객체의 내용을 조회하는 경우 obj.name // .name => dot notation 이라고 하는데, 아래에서 자세하게 알아보도록 하겠습니다. 'sangkwon' // 이처럼 객체 내부의 값을 조회. [변경] obj.age = 20 // 객체의 key를 dot notation으로 입력하고 새로 할당하면 값이 변경. 20 obj {name: 'sangkwo..
arr.slice(start, end) index가 start인 element부터 end - 1번째 index의 element까지 배열로 나타냅니다. ※ 기존의 배열이 변경되는 것이 아니기 때문에 새로운 변수를 선언하고 할당하여야지 복사된 배열을 활용할 수 있습니다. arr.splice(start, end) index가 start인 element부터 end - 1번째 index의 element까지 배열에서 삭제합니다. arr = [0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8] arr1 = arr.slice(0, 3) (3) [0, 1, 0] //- 새로운 변수로 지정해줌으로써 slice된 값들로 배열을 만들고 할당. arr (11) [0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8]..