// 외부에서 많이 쓰이는 함수 API인 경우 JSDoc을 사용하면 좋음
/**
* 주어진 두 인자를 더한 값을 반환함
* @param {*} a 숫자 1
* @param {*} b 숫자 2
* @returns a와 b를 더한값
*/
function add(a, b) {
return a + b;
}
[].map;
에러 처리
try catch finally
function readFile(path) {
// throw new Error('파일 경로를 찾을 수 없음');
return '파일의내용';
}
function processFile(path) {
let content;
try {
content = readFile(path); //시도해보고
} catch (error) { // 에러가 발생한다면
console.log(error);
content = '기본내용';
} finally {
console.log('성공하든 실패하든 마지막으로 리소스를 정리할 수 있음!');
}
const result = 'hi ' + content;
return result;
}
const result = processFile('경로');
console.log(result);
에러 버블링
function a() {
throw new Error('error!');
}
function b() {
try {
a();
} catch (error) {
console.log('생각해보니깐 이 에러는 내가 핸들링 할 수 없을 것 같군!');
throw error;
}
}
function c() {
b();
}
try {
c();
} catch (error) {
console.log('Catched!');
}
console.log('done!');
export
와 import
를 적용하면 다른 모듈을 불러와 불러온 모듈에 있는 함수를 호출하는 것과 같은 기능 공유가 가능하다.// 📁 sayHi.js
export function sayHi(user) {
alert(`Hello, ${user}!`);
}
// 📁 main.js
import {sayHi} from './sayHi.js';
alert(sayHi); // 함수
sayHi('John'); // Hello, John!
<script type="module">
같은 속성이 필요합니다.1. 엄격 모드로 실행됨
2. 모듈 레벨 스코프
3. 단 한 번만 평가됨