[ 05.11 ] 변수 / 타입 / 함수

1. 선언 [declaration]

쉽게 말하면, 어떠한 값에 이름을 지정한다고 보면 된다. 이를 "선언"한다고 하는데,
선언에도 세가지 종류가 있다.
1. let : 변수. 어떠한 값을 한번 선언한 후에도 값 변경 가능.
let 변수가 선언된 표현식 내에서만 유효한 성질이 있다.
2. const : 상수. 어떠한 값 한번 선언 후 값 변경 불가.
3. var : let 과 const 가 나온 이후로 거의 안쓰이고 있다고 봐도 무방하다.

앞의 설명을 근거로, let 과 const 를 간단히 비교해 보겠다.

코딩에서의 = (equal) 표시는 같다 의 의미가 아닌, '대입' 한다의 의미
한번 변수명을 설정하면 다시 같은 변수명 선언하지 않음 주의.
(선언하게 되면 오류가 남.)

let number = 1;
number = number + 1;
console.log(number) // 2

number 의 초기값이었던 1에
또 number+1 (1+1) 을 대입해준것이 또 number가 되므로,
문제없이 콘솔의 값이 2가 된다.

const number = 1;
number = number +1 ;
console.log(number) // error 대폭발.

const 는 값이 리뉴얼이 안되는(?) 성질이 있으므로
Uncaught ReferenceError: Cannot access 'number' before initialization~
라는 에러가 뜨게 된다.

그동안 코딩하면서 느낀건데
보통 숫자 계산식에는 let, 함수명이나 문자타입의 선언은 const 로 많이하는 것 같다.
(무조건적인것 절대아님.)

2. Type

  1. number : 숫자형
  2. string : 문자형
  3. boolean : 불리언 타입 == true/false

이 외에도 자료형([배열],{객체}) / 함수형 / undefined 가 있지만
가장 기본적인 세가지 타입부터 보겠음.

숫자형(number) 는 말그대로 숫자형, 1,2,3.. 정수부터 3.1419.. 소수까지
모든 숫자를 통틀어서 의미한다.

문자형(string) 은 문자형으로, 'a','hello' ... 'true' 부터
'1' 숫자더라도 따옴표 안에 들어있으면 문자형으로 취급한다.

불리언타입(boolean) 한글로 뭐라고 하는지 모르지만,, 참(true)/거짓(false) 값을 리턴시키는 타입이다.
ex) 3 > 1+1 // true
10 === '10' // false
참/거짓을 리턴하기에 비교연산자가 필요하다. (조건문에서 더 다룰 예정)

3. 함수 [function]

쉽게 말하자면, 함수는 하나의 주머니라고 생각하면 된다.
이름을 붙여준 함수주머니 안에 실행할 코드를 작성하고(입력값/return),
주머니 이름을 호출해주면 된다.
여기서 함수주머니에 인자(가상의 사용자정의 == 파라미터)가 있다면, 호출 시 전달인자까지 맞아야 한다.
(이거 내가 이번수업때 배웠다기 보다는 처음 접했을때 제일 어려웠어서 유튜브 뒤지고 나름 연구했다 ㅠ0ㅠ)

함수의 형태는 크게 세가지가 있다.

  1. 함수 선언식 : function 함수명(인자){ 함수 실행식 / return } 함수명()
  2. 함수 표현식 : const 함수명 = function(인자){ 함수 실행식 / return } 함수명()
  3. 화살표 함수 : const 함수명 = (인자) => { 함수 실행식 return} 함수명()
    (tmi . 리액트 배울땐 거의 화살표함수로 사용했다. )
    => 화살표 함수는 return 과 {중괄호} 생략이 가능하다.
    단, 둘 다 쓸거면 다 쓰고 안쓸꺼면 다 안써야 한다. 애매하게 return 했는데 {중괄호} 를 안쓴다거나, return 도 없이 {중괄호} 를 쓴다던가 하면 undefined 가 나온다.
    그래서 두줄 이상일땐 그냥 return / {중괄호} 쓰는게 나음.

예를들어, 친구와 3차까지 밥을 먹은 후 뿜빠이를 해야할때 다음과 같은 함수식을 쓸 수 있다.

//1차 : a, 2차 : b , 3차 : c
function bbombbai(a,b,c){
  let total = Math.floor((a+b+c)/2)
  return total
}
console.log(bbombbai(18500,17000,10000)+'원') //22750원

한사람당 깔끔하게 22750원 내면된다.
(50원까지 깔끔하게 나누는 정없는 사이라는 전제하에.)

*오늘 느낀점
이미 배운 내용이지만, 어설픈 자바스크립트 실력에서 리액트로 넘어가서 뒤죽박죽이 되었었는데 한번 정리를 싹~ 해서 마음의 짐이 내려가는 느낌이었다.
그렇지만 역시 알고리즘 문제를 접하면 아직 한참 모자르구나 ,, 느끼며 겸손해진다.

알고리즘 내가 부순다. 진짜 ㅎ 👊🏻

좋은 웹페이지 즐겨찾기