[TS] 자바스크립트 함수와 객체의 기초

단비·2023년 3월 3일
0

인강

목록 보기
1/15
  • 화살표 함수
    1. 기본형

      const add2 = (a, b) => {
          return a + b;
      };
    2. return 한줄 일때

      const add3 = (a,b) => a + b;
    3. param이 한 개일 때

      const add4 = a => a + 4;
    4. 객체 반환 시

      // 1
      const add5 = (a) => {
          return {hello: 'world'};
      };
      // 2
      const add6 = (a) => ({ hello: 'world' });

  • 비구조화 할당
    1. 생략
      - key와 value가 같으면 생략이 가능함

      const register = (ID, PW) => ({ ID: ID, PW: PW })
      const register = (ID, PW) => ({ ID, PW })
    2. 객체
      - 보통은 1(생략)과 병합하여 많이 사용

      const woman = { name: 'danbi', age: 25, sex: 'female' };
      // 아래 방법 사용 시 womanName, womanAge로 개별 선언
      const { name: womanName, age: womanAge } = { name: 'danbi', age: 25, sex: 'female' };
      // 아래 방법 사용 시 변수와 해당 키값이 동일해야 함
      const { name, age, sex } = { name: 'danbi', age: 25, sex: 'female' };
    3. 배열

      const [first, second, third] = [true, false, 'hi']
      console.log(first, second, third)
    4. spread 연산자…

      const [first2, ...rest] = [true, false, 'hi'] // true [ false, 'hi' ]
      
      const arr = [1, 2, 3]
      const arr2 = [...arr, 4, 5] // [1,2,3,4,5]
      
      const { name: name2, ...rest2} = {
          name: 'danbi', age: 25, sex: 'female'
      }; // danbi { age: 25, sex: 'female' }
      
      console.log({
          ...rest2,
          height: 163
      }) // { age: 25, sex: 'female', height: 163 }

  • 함수의 발전
    1. func: function prt(){}
    2. func: () => {}
    3. func() {}
  • 객체
    1. 함수를 통한 비구조화 할당
      - 자바스크립트는 변수에 함수를 넣을 수 있으며, 비구조화 할당으로 인한 괄호 생략이 가능함

      function prt4(){
          console.log("hello world4")
      }
      
      const ob = {
          prt4 // prt4: prt4()와 동일함(비구조화 할당)
      }
    2. 자동 변수 삽입

      const test = "test word";
      
      const ob2 = {
          [test]: 1, // 변수값이 자동 삽입됨
          [1 * 2 * 3]: 6,
      } // { '6': 6, 'test word': 1 }

  • 객체의 삼항연산자
    1. 해당 변수가 있는지 모를 경우

      console.log(ob?.country?.hi)
    2. ??
      - 해당 값이 null일 경우 뒤의 값을 출력
      - 결론적으로 변수가 생성되거나 값이 덮어씌워지는 것이 아닌 해당 명령 때만 수행

      console.log(ob.country ?? 'seoul') // null 일 경우 서울을 삽입
      console.log(ob.country ? ob.country : 'seoul') // 위의 축약형
      console.log(ob.country) // undefined

  • 컴파일언어와 인터프리터언어의 차이
    • 컴파일언어 (자바, C언어 등)
      • 규모가 큰 프로그램은 컴파일 시 오래 걸림
      • 컴파일 후에는 모든 소스코드가 기계어로 변환되어 있기 때문에 실행 시간이 빠름
    • 인터프리터언어 (자바, 파이썬, js)
      • 빌드 과정 없이 바로 실행이 가능(별도의 실행 파일이 없음)
      • 컴파일을 하지 않고 인터프리터가 직접 한 줄씩 읽어서 실시간으로 실행하기 때문에 컴파일 언어에 비해 속도가 느림 → 번역과 실행이 동시에 이루어짐(하드웨어 스펙이 높아짐에 따라 실행 차이를 체감하기 어려운 추세)
    • 비교 핵심
      • 컴파일러: 소스코드 전체를 CPU가 읽을 수 있는 기계어로 변환
      • 인터프리터: 소스코드 각 행을 기계어로 번역
      • 오류 발생 시: 컴파일러는 컴파일 하는 도중에 오류가 나고, 인터프리터는 분석 도중 어느 행에 오류가 발생하면 그것을 알려주고 그 이후의 분석을 멈춤
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글