[22.11.10] TIL +8

김미영·2022년 11월 10일
0

내배캠

목록 보기
23/46

알고리즘 미쳤냐~~

알고리즘 1-6강 들어서자마자 머리가 새하얘졌다.
아니 무슨말인지.. 지금 생각해보면 내가 뭘 봤고 뭘 적었는지 기억도 안난다.
최빈값 구하기, 공간복잡도 시간복잡도 또 뭐있더라 ㅠㅠ있던 것 같은데 기억이...
이건 다시한번 공부가 필요할 것 같다.
알고리즘.. 취업에 중요하겠지만 일단 자바스크립트 먼저 공부를 해봐야 할 것 같다 ㅠㅠㅠ
일단 오늘 배운건 1도 이해가 가지 않으니 기초부터 다져보려고 한다.

  • 프로그래머스 입문용 하루 최소 2문제씩 풀기(풀어서 븨로그 업로드)

일단 알고리즘을 위해 세운 첫 목표이다.

그리고 그 외 오늘 배운 것,
자바스크립트 함수에 대해서 다시한번 복습했다.

1. 함수를 선언하는 방법

-기본적으로 재사용이 용이하게 코드 작성을 할 수 있도록 노력해야겠다.

2. 함수의 메모리값

-함수는 값이 들어있는 메모리주소를 참조하고 있다.
-함수를 변수에 담게되면, 그 변수도 동일한 메모리주소를 참조하고 있다.

function add(a, b) {
  // 함수 add에는 메모리주소 0x11이 들어있다.
  console.log(a);
  console.log(b);
  return a + b;
}

const sum = add; // 변수 sum에도 함수 add와 같은 메모리주소 0x11이 들어있다.

console.log(sum(1, 2));
console.log(add(1, 2));

이렇게 보면, add를 변수 sum에 담았지만, sum도 사용 가능하고 add도 사용 가능하다. 값은 같다.

3. return

-함수에서 return을 명시하지 않으면 undefined가 반환된다.
-그러나 아무런 값도 반환하지 않는 함수는 return을 명시하지 않아도 된다.
-return을 함수 중간에 사용하게되면 함수가 종료된다.
-위 예는 조건이 맞지않는 경우, 함수 도입부분에서 함수를 일찍 종료하고 싶을 때 사용한다.

function print(num) {
  if (num < 0) {
    return;
  }
  console.log(num);
}

num이 0보다 크면 num을 출력하고, 0보다 작으면 함수를 종료한다.

4-1. 매개변수와 인자

-매개변수와 인자가 뭔지 헷갈렸는데 개념을 확실히 알았다.
-매개변수에 기본값을 지정해 줄 수 있다.
-기본값을 지정해줘도 외부에서 값을 주면 외부값으로 사용된다.

function add(a = 1, b) {
  // a,b => 매개변수 라고 함. 
  // 매개변수에 기본값을 지정해 줄 수 있음.
  console.log(a);
  console.log(b);
  console.log(arguments);
  return a + b;
}
add(1,2,3,4,5); // 1,2,3,4,5 => 인자 라고 함.
/** 결과 : 
1
2
[Arguments] { '0': 1, '1': 2, '2': 3, '3': 4, '4': 5 } */

arguments를 출력하면 오브젝트로 출력된다.

4-2. ...매개변수

-Rest 매개변수, Rest parameters 라고도 한다

function sum(a, b, ...c) {

  console.log(a);
  console.log(b);
  console.log(c);
}
sum(1, 2, 3, 4, 5, 6, 7);
/** 결과 : 
1
2
[ 3, 4, 5, 6, 7 ] */

이렇게, 인자들을 넣어줬는데 ...c 라는 rest 매개변수를 넣어주니 arguments의 0번째 1번째 index인 매개변수 a,b를 제외한 나머지들은 매개변수 c에 array 형식으로 저장되는것을 알 수 있다.

5-1. 함수 표현식

-무명함수, 말그대로 이름이 없는 함수이다. 변수에 함수를 넣어 사용하는 경우이다.
-무명함수에 이름을 넣어 사용하면 error이니 주의하자.

let add = function (a, b) {
  return a + b;
};
console.log(add(1, 2));

위 무명함수는 화살표 함수로도 사용할 수 있다.

let add = (a, b) => {
  return a + b;
};
console.log(add(1, 2));

근데 "값만" 반환하는 무명함수는 괄호와 return 문구를 생략 할 수 있다.

let add2 = (a, b) => a + b;
console.log(add2(3, 4));

이런식으로 점점 짧아지는 것을 볼 수 있다.
근데 무명함수는 아무데서나 쓰는건 아니다.
아직 어떤 상황에서 써야하는지는 나오지 않았는데, 내일 구글링 해보기로 한다.

5-2.IIFE

-바로 호출해서 실행하는 함수, 함수를 괄호로 묶는다.
-자주 사용하지는 않고, front에서 가끔 즉각적으로 실행하고싶은 코드가 있을 때 사용한다.

(function run() {
  console.log('g');
})();

그 외

-생성자 함수라는게 있는데 그건 객체 배울 때 배운다고 한다.

(const object = new function();)

이런 코드라고 한다.


어제,오늘은 가족여행 때문에 집중을 못했다.
내일부터 집중하고, 이삿날까지 일단 화이팅 해보자

profile
프론트엔드 지망생

1개의 댓글

comment-user-thumbnail
2022년 11월 11일

알고리즘은 너무 한번에 이해하려고 하시기보다 천천히 두고 반복적으로 하는게 제일 좋은것같아요 ㅎㅎ 화이팅!!!

답글 달기