4) 자바스크립트의 문법과 표현

멜론쿵야65 웹개발·2024년 3월 7일
0

모던자바스크립트

목록 보기
1/2

1. 문장과 표현식

  • 문장(statements): 어떤 동작이 일어나도록 작성된 최소한의 코드 덩어리
  • 선언문, 할당문, 조건문, 반복문 .. 이렇게 끝에 문이라고 붙은 이유가 모두 동작을 수행하는 문장
  • 표현식: 결과적으로 하나의 값이 되는 코드
    5 + 7 // 12
    
    'I' + ' Love ' + 'Codeit' // I Love Codeit
    
    true && null // null
  • 표현식 && 문장 === true
    // 할당 연산자는 값을 할당하는 동작도 하지만, 할당한 값을 그대로 가지는 표현식이다.
    title = 'JavaScript'; // JavaScript
    
    // 함수 호출은 함수를 실행하는 동작도 하지만, 실행한 함수의 리턴 값을 가지는 표현식이다.
    sayHi(); // sayHi 함수의 리턴 값
    
    // console.log 메소드는 콘솔에 아규먼트를 출력하는 동작도 하지만, undefined 값을 가지는 표현식이다.
    console.log('hi'); // undefined
  • 결국에는 ‘값’만 어규먼트에 넣을 수 있다.. 라는 말씀

2. 조건을 다루는 표현식

  • 표현식: 조건 ? (Truthy할때 표현식) : (Falsy할때 표현식)
  • 삼항 연산자: 조건, ?, : 즉, 연산자가 세개이기 때문에 삼항 연사자 라고도 함

3. Spread 구문 (…배열)

  • Spread: 여러값을 가진 배열들의 값을 각각 잘라냄
  • ex)
    const arr3 = [1,2,3];
    
    ...ar3
    
  • 특징
  • 배열을 복사할떄 사용한다 (기존에 splice해서 복사하는 것과 결과가 같음)
  • spread하면 새로운 배열을 만들거나 함수의 아규먼트로 쓸 수 있다
  • 객체 Spread하기
  • 객체로는 새로운 배열을 만들 거나 함수의 아규먼트로 사용할 수 없다
  • 반드시 객체를 표현하는 중괄호 안에서 사용해야됨

4. 모던한 프로퍼티 사용법

  • 객체의 속성의 값이 외부에서 선언되었을떄 ex)
    const title='모던프로퍼티 사용법';
    const page=2;
    
    const information {
    	title,
    	page
    };
  • 객체 안에서 함수를 선언할 떄
    const information {
    	title,
    	page
    	gettime() { //gettime: function() {}, 에서 콜론과 function 키워드 생략가능
    		blahblah;
    	}
    };
  • 계산된 속성명(Computed property name)
  • 대괄호에 표현식을 적으면 객체의 속성명처럼 사용할 수 있음
  • 계산된 속성명을 객체로 호출 할떄 ( element[표현식] )
    const information {
    	[표현식]:;
    };

5. 옵셔널 체이닝 (?.)

: 안전하게 프로퍼티에 접근하는 방법,

  • 속성에 온점으로 접근할 때 속성이 없으면 error가 뜸
  • 옵셔널 체이닝 연산자(?.)를 쓰면 값이 없을떄 undefined를 반환함
  • ex) console.log(user.cat?.name ?? '함께 지내는 고양이가 없습니다.');

6. 구조 분해(Destructuring)

: 배열의 요소나 객체의 프로퍼티 값들을 개별적인 변수에 따로 따로 할당하기

  • 특징
  • 기본값과 rest문법을 사용할 수 있다.
  • Destructuring을 할 때 변수에 할당될 값이 없거나 혹은 undefined값이 할당되면, 그 변수에는 undefined 대신 기본값이 할당됩니다
  • 활용:
  • 데이터를 교환할때 자주 사용함
  • 객체의 속성을 값(변수)처럼 사용하고 싶을 때
  • 새로운 이름으로 변수를 선언할 때
const [macbook, ipad, coupon] = members;
// 배열 변수에 값 한번에 넣기
[ MacBook , iPad ] = [ iPad , Macbook ];

// 데이터 교환

const {title,price} = MacBook;

const title=MacBook.title

const price=MacBook.price

// 객체의 속성을 값처럼 사용하고 싶을 때

const {title:product, …rest} =MacBook;

7. 에러와 에러 객체

  • 에러가 나면 윈도우는 에러의 정보를 담은 에러 객체를 만듦
  • 구성: { error: message }
  • const error= new TypeError(’message’)
    : 에러 객체 생성
    ex) const error = new TypeError(’타입에러가 발생했습니다’)
    ———> 에러객체: {TypeError:타입에러가 발생했습니다}
  • throw error : 에러 객체 실행

8. try… catch 문

  • 에러가 나도 프로그램 동작이 멈추지 않도록 동작지정
  • 특징
  • try문 안에서 생성한 객체는 block scope를 가지기 때문에 외부에서 활용 불가능
    try {
      // 코드
    } catch(error) {
    	  //에러가 발생했을 때 동작할 코드, error는 에러객체
    } finally {
    		// try가 실행됐을때 에러 여부 없이 무조건 마지막에 실행되는 함수
    }
  • finally 문
    : try가 실행됐을때 에러 여부 없이 무조건 마지막에 실행되는 함수
  • 활용
    : 에러 발생 시간 등을 출력할 때 사용된다고 함

0개의 댓글

관련 채용 정보