2013-06-11 1 views
20

자바 스크립트의 모든 문장 다음에 세미콜론을 사용하는 것이 좋은 구문이지만, 중괄호 뒤에 if/else 문을 사용하지 않아도되는 이유를 알고 있습니다.if/else 문 뒤에 세미콜론을 사용하지 않는 이유는 무엇입니까?

+1

while {} do와 for() {}도이 속성을 가지고 있습니다. –

+0

이것은 언어 문법에 관한 것입니다. 당신은 그것이 무엇인지 알기 때문에, "Statements"[here] (http://www-archive.mozilla.org/js/language/grammar14.html)를 찾으십시오. – acdcjunior

+0

[중괄호 뒤에 세미콜론을 사용해야하는 경우는 언제입니까?] (http://stackoverflow.com/questions/2717949/when-should-i-use-a-semicolon-after-curly-brace) –

답변

33
  • 세미콜론은 기본적으로 if-else가 문 또는 문 그룹 중 하나가 와야합니다 문

의 그룹을

  • {} 시작 ONE 문을 종료하고 종료하는 데 사용됩니다.

    if-else

    는 성명 뒤에 :

    if (condition) statement; 
    if (condition); // followed by a statement (an empty statement) 
    

    if-else 문 그룹에 의해 다음 :

    if (condition) { 
        statement; 
        statement; 
    } 
    
    if (condition) { 
        // followed by a group of statements of zero length 
    } 
    

    if-else;로 끝나야가 하나의 문 뒤에합니다. 두 번째 명령문 그룹이 뒤 따르는 경우 ;;으로 끝나지 않으므로 ;은 단일 명령문을 끝내기 위해 사용되며 명령문 그룹을 끝내는 데는 사용되지 않기 때문입니다.

  • +0

    웅변니다. – Orangepill

    +0

    나는 "if-else는 반드시 ~로 끝나야한다"와 동의하지 않습니다. 자바 스크립트의 모든 문장은 다음으로 끝나지 않아도됩니다. 참고하시기 바랍니다. 그러한 엄격한 규칙은 없습니다. – Vineeth

    +0

    상황에 맞는 (예 : 중괄호로) 종료되지 않은 모든 명령문에는 a가 필요합니다. – Orangepill

    5

    중괄호 자체가 종료 문자이기 때문에.

    복합 문 블록을 묶고 본질적으로 종료되는 토큰입니다. 그것은 문장의 끝 부분에 마침표를 두는 것과 같으며, 파서에게 생각이 완료되었다는 신호를 보냅니다.

    완전히 못생긴 동안 {}에있는 모든 문장을 감싸고;

    +0

    그러나 당신은; 줄 바꿈으로 {} – Orangepill

    +0

    명확히 js 보풀을 전달하지 않습니다 – FlavorScape

    9

    많은 현대 언어가이 속성을 가진 C에서 구문을 복사했기 때문에 진짜 대답이되었습니다. 자바 스크립트는 이러한 언어 중 하나입니다.

    C 문 블록에게 문을 사용 가능한 사용 (세미콜론을 종료하지 않아도)

    { ... } 
    

    수 있습니다. 그래서 문장 블록을 세미콜론없이 then과 else 절로 사용할 수 있습니다.

    문을 then 또는 else 절에 넣으면 세미콜론으로 종료해야합니다. 다시 C 에서처럼, JavaScript가 추가로 변형되었습니다. 삽입하는 것이 구문 오류를 일으키지 않으면 선 끝에서 선택적입니다.

    관련 문제