KnP House for Daily

Javascript 세미콜론(;) 가이드 본문

Web/JavaScript

Javascript 세미콜론(;) 가이드

K.ung 2016.10.30 00:47

https://www.codecademy.com/blog/78 에 글을 번역한 것 입니다.

언제 세미콜론이 필요합니까? 여기 당신을 위한 치트키가 있습니다..


필수사항: 두개 statements가 같은 줄에 있을때

당신이 2개 또는 많은 statements를 같은 줄에 작성하면 세미콜론은 의무입니다.

var i = 0; i++        // <-- semicolon obligatory
                      //     (but optional before newline)
var i = 0             // <-- semicolon optional
    i++               // <-- semicolon optional

옵션사항: statements 이후에

자바스크립트 세미콜론은 별도 statements에서 사용됩니다. 그러나 만약 줄바꿈이 된다면 세미콜론은 생략할 수 있습니다.(또는 한개의 {}블록문이라면). statements는 어떤 일을 하기 위해 컴퓨터에게 알려주는 코드 조각입니다. 여기 일반적인 statements 타입들이 있습니다.

var i;                        // variable declaration
i = 5;                        // value assignment
i = i + 1;                    // value assignment
i++;                          // same as above
var x = 9;                    // declaration & assignment
var fun = function() {...};   // var decl., assignmt, and func. defin.
alert("hi");                  // function call

위 statements는 ;와 함께 종료 할수 있습니다. 그러나 그것들 중에 ;이 없을수도 있습니다.
;를 통해 각 statement를 종료 하게 해주는 좋은 습관에 대해 고려하십시오. - 당신의 코드를 조금은 쉽게 파싱하고 압축하게 만들어준다. 만약 당신이 줄바꿈을 제거하는 경우, 같은 줄에 분리되지 않은 몇몇 statements에 대해 걱정할 필요가 없습니다.(if you remove line breaks you needn’t worry about several statements ending up unseparated on the same line. 역자주:갑자기 이 문장이 나오는게 이해가안됌)

Avoid!

1. {}가 닫힌 후에

당신은 } 이 닫힌 이후에 세미콜론을 사용하면 안됩니다. var obj={};와 같은 할당문은 예외입니다.(위 참조)

// NO semicolons after }:
if  (...) {...} else {...}
for (...) {...}
while (...) {...}

// BUT:
do {...} while (...);

// function statement: 
function (arg) { /*do this*/ } // NO semicolon after }

2. if, for, while, switch의 괄호()) 후에 statement

if statement의 { }이 후에 세미콜론을 사용해도 상관없습니다.(그것은 무시되어지고, 불필요하다고 warning을 보게됩니다.) 그러나 세미콜론이 속하지 않는 (if, for, while, switch statement의 ()의 후와 같은)경우에는 좋은 생각이 아닙니다.

if (0 === 1); { alert("hi") }

// equivalent to:

if (0 === 1) /*do nothing*/ ;
alert ("hi");

위 코드는 alert "hi" 가 실행 되지만, 0 === 1 은 다릅니다. 이는 세미콜론 때문에 작동 할 수 있는 겁니다.
자바스크립트는 당신이 비어있는 statment를 사용한 것이라고 생각하고, 그리고 오른쪽에 있는 모든 것은 더이상 if 조건에 속하지 않고 독립적으로 처리됩니다.

물론 예외는 있습니다..

for 루프의 () 안에 세미콜론은 오로지 첫번째 이후와 두번째 statement에만 사용하며 세번째는 사용하지 않습니다.

for (var i=0; i < 10; i++)  {/*actions*/}       // correct
for (var i=0; i < 10; i++;) {/*actions*/}       // SyntaxError

세미콜론을 해결 하는 방법

Codecademy 코드 에디터에 빌트인된 자바스크립트 문법교정 툴 JSLint은 불필요한 세미콜론을 찾을 수 있는 좋은 방법입니다.

저작자 표시
신고
0 Comments
댓글쓰기 폼