localStorage 객체는 웹 브라우저가 기본적으로 제공하는 객체.
조건문을 활용하여 예외가 발생하지 않게 만드는 것.
const h1 = document.querySelector('h1')
if(h1) {
h1.textConten = '안녕하세요'
} else {
console.log('h1 태그를 추출할 수 없습니다.')
}
이런식으로 h1이 없을 때를 예상하여 예외를 발생하지 않도록 만듦.
예외를 조금 더 쉽게 잡을 수 있는 기능으로 try catch finally 구문이 있다.
try catch finally 구문을 사용해서 예외를 처리하는 방법을 고급 예외 처리라고 함.
아래는 try catch finally 구문의 기본적인 형태.
try {
// 예외가 발생할 가능성이 있는 코드
} catch (exception) {
// 예외가 발생했을 때 실행할 코드
} finally {
// 무조건 실행할 코드 (선택)
}
아래처럼 예외 정보를 출력해보면
try {
const array = new Array(999999999999999)
} catch (exception) {
console.log(exception)
console.log(`예외 이름: ${exception.name}`)
console.log(`예외 메시지: ${exception.message}`)
}
상황에 따라 예외를 강제로 발생시켜야 하는 경우가 있다. 예외를 강제로 발생시킬 때 throw 키워드를 사용한다.
// 단순하게 예외를 발생.
throw 문자열
// 자세하게 예외를 발생.
throw new Error(문자열)
프로그램에 필요한 요소만 사용해서 객체를 표현하는 것. 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념과 기능을 간추려내는 것.
객체들을 정의하고 그러한 객체를 활용해서 프로그램을 만드는 것.
객체를 우선적으로 생각해서 프로그램을 만든다는 방법론을 의미함.
객체를 더 안전하고 효율적으로 생성하기 위해 만들어진 문법.
큰 규모의 자바스크립트 라이브러리. 사용자 인터페이스(UI)를 쉽게 구성할 수 있도록 도와줌.
컴포넌트를 출력할 때는 ReactDOM.render() 메소드를 사용.
ReactDOM.render(컴포넌트, 컨테이너)
<body>
<div id="root"></div>
<!-- 리액트를 사용하는 코드 입력 -->
<script type="text/babel">
// 컴포넌트와 컨테이너 생성하기
const component = <h1>리액트 기본</h1> // JSX(JS 확장 문법)
const container = document.getElementById('root')
// 출력하기
ReactDOM.render(component, container)
</script>
</body>
자바스크립트 코드 내부에 HTML 코드를 사용하는 문법. 태그 내부에 표현식을 삽입해서 출력하는 기능도 제공함. 표현식을 출력할 때 중괄호를 사용하고 속성으로 표현식을 출력할 때는 따옴표를 사용하면 안된다.
웹브라우저는 JSX 문법을 읽고 실행하지 못하기 때문에 바벨을 사용함. 바벨이 JSX 코드를 읽고 일반적인 자바스크립트 문법으로 변환한 뒤 실행해줌. 스크립트 태그에 type="text/bable" 속성을 추가해주면 됨.
<태그>{표현식}</태그>
<태그 속성={표현식} /> // 따옴표 사용하면 안됨.
<body>
<div id="root"></div>
<!-- 리액트를 사용하는 코드 입력 -->
<script type="text/babel">
// 상수 선언하기
const name = '구름'
const imgUrl = 'http://placedog.net/400/200'
// 컴포넌트와 컨테이너 생성하기
const component = <div>
<h1>{name} 님 안녕하세요!</h1>
<img src={imgUrl} />
</div>
const container = document.getElementById('root')
// 출력하기
ReactDOM.render(component, container)
</script>
</body>
h1, img 태그 등 HTML 표준에 포함된 태그로 컴포넌트를 만들 수 있고, 사용자가 직접 클래스 또는 함수를 이용해 컴포넌트를 만들 수 있다.
클래스 컴포넌트
클래스로 만든 컴포넌트.
함수 컴포넌트
함수로 만든 컴포넌트.
클래스 컴포넌트 만들기
class 컴포넌트 이름 extends React.Component {
render () {
return <h1>출력할 것</h1>
}
}
React.Component 클래스의 상속을 받아야 컴포넌트를 동작할 수 있게 속성과 메소드를 받을 수 있다.