가수면

Javascript 기본 복습 본문

일지

Javascript 기본 복습

니비앙 2022. 11. 13. 19:48

이번주 작성한 TIL을 읽어보며 휘발되었었던 개념들과 휘발될 것 같은 개념, 각 챕터의 문제들을 다시 풀어봤을 때 안 풀렸던 문제들을 정리해보고자 한다.

 

이론

 

&&(논리곱)

둘 중 하나라도 false라면 false 반환.

그렇기에 프로그램은 양쪽 모두 확인하게 됨

왼쪽이 true면 오른쪽을 뱉음

왼쪽이 false면 왼쪽 을 뱉음

 

||(논리합)

둘 중 하나라도 true라면 true를 반환.

그렇기에 앞에 것이 true라면 뒤에 걸 확인하지 않음.

왼쪽이 있다면 왼쪽을 뱉고, 왼쪽이 없다면 오른쪽을 뱉음

 

for in vs for of

for in => 숫자

for of => 요소

 

for in

좀 더 구체적인 예시

const todos = ['우유 구매', '업무 메일 확인하기', '필라테스 수업']

      for (const i in todos) {
        console.log(`${i}번째 할 일: ${todos[i]}`)
      }
      
0번째 할 일: 우유 구매
1번째 할 일: 업무 메일 확인하기
2번째 할 일: 필라테스 수업

 

for

for (let i = 0; i < array.length; i++)

빨간 부분이 몇번째 순서까지라기 보단 횟수 자체임.(반복문 내부를 array.length번 반복.)

이 잘못된 지식 때문에 피라미드를 다시 풀긴 했지만, 이해를 바탕으로 코드를 썼다기 보단 기억을 바탕으로 외워진 걸 쓴 느낌이었음.

- continue 문 -

해당 명령문을 중단하고 다음 단계부터 실행

for (let i = 0; i < 5; i++) {
	if (i === 2) continue;

	console.log(i);
}

// Print: 0
// 1
// 3
// 4

 

.push

배열에 값을 넣고 더해진 최종 배열의 수

const a = [1, 2, 3, 4]
consol.log(a.push(6))
5

#a = [1, 2, 3, 4, 6]

 

 

나머지 매개변수

배열로 바꿔줌

# b = 매개변수
const a = function (...b) {
	console.log(b)
}

a(1)
#[1]
a(1, 2)
# [1, 2]

 

전개 연산자

함수를 호출 (배열을 벗겨줌)

const 함수 = function (a, b, c) {
	console.log(a, b, c)
}
const a = [1, 2, 3]
함수(...a)
# 1, 2, 3

 

.forEach()

가장 기본적인 콜백 함수. 배열 내부의 요소를 사용해 콜백 함수를 호출

      const numbers = [273, 52, 103, 32, 57]

						# array는 잘 쓰이지 않음
      numbers.forEach(function (value, index, array) {
        console.log(`${index}번째 요소 : ${value}`)
      })

 

.filter()

리턴 값이 true인 것들만 모아서 새로운 배열을 만드는 함수

      # const는 재할당이 안돼서 오류남
      let 배열 = [273, 52, 103, 32, 57]
      배열 = 배열.filter(function (value, index) {
        return value % 2 === 0
      })

      console.log(배열)
      [52, 32]

 

.map()

리턴한 값을 기반으로 새로운 배열을 만드는 함수

      let 배열 = [273, 52, 103, 32, 57]
      배열 = 배열.map(function (value, index) {
        return value + '!!'
      })

      console.log(배열)
      ['273!!', '52!!', '103!!', '32!!', '57!!']

 

화살표 함수

  • 기본형

      let 배열 = [273, 52, 103, 32, 57]
      배열 = 배열.filter(function (value, index) {
        return value % 2 === 0
      })

 

  • 화살표 함수 적용 (빨간 부분 날림, 초록색 추가)

      let 배열 = [273, 52, 103, 32, 57]
      배열 = 배열.filter((value, index) => {
        return value % 2 === 0
      })

 

  • 더 줄이기 (내부에 있는 코드가 return하는 코드 하나라면 중괄호와 return 생략가능)

      let 배열 = [273, 52, 103, 32, 57]
      배열 = 배열.filter((value, index) => value % 2 === 0)

 

 

 

문제

1. 계절 구분하기 (조건문)

내가 적은 코드

	const a = Number(prompt('월을 입력해주세요.', ''))
	
	if ( a === 3, 4, 5) {
		alert ('봄입니다.')		
	} else if (a === 6, 7, 8) {
		alert ('여름입니다.')
	} else if (a === 9, 10, 11) {
		alert ('가을입니다.')
	} else {
		alert ('겨울입니다.')
	}

 

작동되는 코드

	const a = Number(prompt('월을 입력해주세요.', ''))
	
	if ( 3 <= a && a <= 5) {
		alert ('봄입니다.')		
	} else if ( 6 <= a && a <= 8) {
		alert ('여름입니다.')
	} else if ( 9 <= a && a <= 11) {
		alert ('가을입니다.')
	} else { 
		alert ('겨울입니다.')
	}

아쉬운 점

내가 적은 코드에서 숫자 부분을 배열로도 만들어보고 했었는데 범위를 설정할 생각을 미처 못 했었다.

시간을 더 들였다면 어떻게든 접근 방식을 바꿔가며 정답을 찾아갔을 거 같지만, 막혔을 때 그 방식의 변형 말고도 좀 더 생각을 유연하게 가져가야 할 필요가 있다.

 

 

2. 최댓값 구하기

console.log(max([1, 2, 3, 4]))찍었을 때 최댓값인 4가 출력이 되도록 만들기

const max = function (array) {
  let output = array[0]
  for (const a of array) {
    if (output < a) {
      output = a
    }
  }
  return output
}

console.log(max([1, 2, 3, 4]))

부족했던 점

함수의 매개변수에 뭐를 적어야할지 모르겠었음. 함수 대한 기본이 아직도 부족하다는 것을 느낌

for of 문 쓸 때 const를 빠뜨림.

return 빠뜨림.

 

 

'일지' 카테고리의 다른 글

프로젝트와 알고리즘  (0) 2022.11.20
새로운 주차  (0) 2022.11.14
Git 원리 이해  (0) 2022.11.09
서버 성능?  (0) 2022.11.06
또 다시 줄 이슈  (0) 2022.11.03
Comments