Published 2023. 5. 9. 20:00
728x90
세미콜론 자동 삽입(ASI, Automatic Semicolon Insertion)은 줄바꿈이 자동으로 세미콜론으로 대체되는 것을 의미한다.
때로 의도하지 않은 동작을 초래할 수 있기 때문에 코드를 작성할 때 주의해야 한다.
특히, 함수 이름과 중괄호를 다른 줄에 작성할 경우, JavaScript에서는 이를 한 줄로 인식하여 세미콜론이 삽입되어 함수가 올바르게 작동하지 않을 수 있다.
다음 예시 코드를 보자
function someFunction()
{
// 코드 블록
}
위 코드에서는 함수 이름과 중괄호가 다른 줄에 작성되어 있다. 이 경우, 세미콜론을 자동으로 삽입하여 다음과 같이 해석한다.
function someFunction();
{
// 코드 블록
}
이 경우, someFunction은 함수 선언으로 해석되지 않으며 에러가 발생한다.
따라서, 함수 이름과 중괄호는 같은 줄에 작성해야 한다. 이를 통해 세미콜론 자동 삽입 문제를 방지하고 코드 가독성을 높일 수 있다.
// 올바른 작성
function someFunction() {
// 코드 블록
}
좀 더 자세한 예시를 보도록 하자
function foo() {
return
'Hello, World!';
}
console.log(foo()); // undefined 출력
위 코드에서 foo 함수는 문자열 "Hello, World!"을 반환해야 하지만, return과 문자열이 다른 줄에 있기 때문에 ASI가 동작하여 반환 값이 undefined가 된다. 이를 방지하기 위해서는 return과 문자열을 동일한 줄에 작성해야 한다.
function foo() {
return 'Hello, World!';
}
console.log(foo()); // "Hello, World!" 출력
위 코드에서는 `return`과 문자열이 동일한 줄에 있기 때문에 ASI가 동작하지 않고, 정상적으로 문자열 "Hello, World!"을 반환한다.
728x90
'Basic > JavaScript' 카테고리의 다른 글
[Javascript] 자바스크립트는 싱글 스레드 (+비동기 심화 학습) (0) | 2023.05.15 |
---|---|
데이터 캐싱으로 웹소켓 성능 개선하기 (불필요한 네트워크 트래픽 없애기) (0) | 2023.05.10 |
[JavaScript] 익명함수와 화살표 함수 이해하기 (0) | 2023.05.09 |
[JavaScript] BigNumber.js를 활용하여 정확한 계산, 큰 수 및 작은 수 다루기 (0) | 2023.05.08 |
[JavaScript] 객체 변환하기 (0) | 2023.05.03 |