[TIL] Unit 2. JavaScript 기초 (변수, 자료형, 함수)

string_main·2022년 4월 26일
0

JavaScript

목록 보기
1/22
post-thumbnail

🌱용어 정리


  • 메모리(memory) : 데이터 보관함, 각각의 크기는 동일
  • 변수(variable) : 각 메모리에 붙인 이름(Label), 상황에 따라 변할 수 있는 값
  • 선언(declaration) : 메모리 확보
  • 할당(assignment) : 메모리에 데이터 저장
  • 표현식(expressions) : 값으로 이행하는 임의의 유효한 코드 단위, 값을 반환하는 식 또는 코드
  • 평가(evaluation) : 표현식이 의미하는 바를 알아내는 과정
  • 매개변수, 인자(parameter) : 함수 정의 시 외부로부터 받아들이는 임의의 값
  • 전달인자, 인수(argument) : 함수 호출 시 사용되는 값

🌱표현식의 평가 과정 (Evaluation of expressions)


console.log(age * 2) // 1. 변수 age를 메모리에서 조회됨

console.log(12 * 2) // 2. 메모리에 저장된 값(ex.12)으로 대체됨

console.log(24) // 3. 최종적으로 곱하기 표현식이 평가됨

🌱자료형(Type)의 종류


  • 원시 자료형 : 객체를 제외한 모든 타입. 객체, 배열, 함수와는 달리 변경이 불가한 불변 데이터를 뜻한다.

    • Boolean 타입 : true와 false 두 가지의 값을 가지는 논리형
    • Null 타입 : 존재하지 않은 객체를 가리키는 참조, null 하나의 값만 가질 수 있음 (예외적으로 typeof로 검사 시에는 object를 반환함)
    • Undefined 타입 : 선언 후 값을 할당하지 않은 변수에 자동으로 할당
    • Number 타입 : 배정밀도 64bit 이진 형식
    • BigInt 타입 : Number의 안전 한계를 넘어서는 큰 정수도 안전하게 저장하고 연산할 수 있는 타입
    • String 타입 : 텍스트 데이터를 나타내는 타입
    • Symbol 타입 : 고유하고 변경 불가능한 값, 객체의 속성키로 사용 가능
  • 객체(참조 자료형): 원시 자료형이 섞인(compound) 자료형

    • 배열(array) : 리스트 형태의 고수준 객체(list-like objects)
    • 함수(function) : 코드의 묶음, 기능의 단위, 입력과 출력간의 매핑( 호출 후에는 반드시 반환하기 때문)

🌱함수 선언 방법


  • 함수 선언식(function statment) : 함수 이름으로 함수를 호출, 호이스팅 됨, 세미콜론 없음
function fn(a, b) {
  let c = (a * b) / 2;
  return c
}
  • 함수 표현식(function expressions) : 익명 함수를 변수에 할당하는 방식, 호이스팅 되지 않음, 세미콜론 있음
const fn = function(a, b) {
  let c = (a * b) / 2;
  return c
};
  • 화살표 함수 : ES6부터 추가된 함수 표현식의 단축 표현, 함수 본문(body)에 return문 만 있는 경우 return과 중괄호({}) 생략 가능, return문에 소괄호(()) 사용 가능 (2줄 이상일 경우 명시적으로 return과 중괄호를 써주는 것이 좋음)
const fn = (a, b) => {
  let c = (a * b) / 2;
  return c
};

🌱알게된 것


  • 변수 사용은 데이터를 편리하게 저장하고 꺼내 쓰는 것 (a way to handle data)
  • undefined와 함수도 타입이다.

🌱느낀 점


  • OT때 보다는 덜 정신 없긴 했지만 오늘도 일찍 일어나서 그런지 너무 피곤했다...빨리 이 생활 패턴에 적응하길 바랄 뿐ㅠㅠ
  • 페어 프로그래밍을 처음 해보는 날이어서 좀 걱정했는데, 페어분이 먼저 DM도 주시고 친절하셔서 1시간 반 동안 즐겁게 페어를 진행했다! 얻어가는 점도 느낀 점도 많았다.

참고자료 | https://developer.mozilla.org/ko/docs/Web/JavaScript/Data_structures

profile
FE developer

0개의 댓글