본문 바로가기

웹개발/javascript

자바스크립트 문장 Statement

 

자바스크립트의 ES5기반으로 한 기본 개념들입니다.  

공부했던 내용을 정리하는 용도로 오류가 있을 수 있습니다.

재배포 수정하지 마세요. 

 

 

 


 

 

 

 

 

문장 Statement

 

문장의 끝이 ;(세미콜론)인 형태로 세미콜론은 문장을 끝나게 하는 역할을 한다. 

또한 세미콜론은 자바스크립트 엔진이 자동으로 삽입해 문장을 끝내기도 한다. 

 

화이트 스페이스 White space

사람 눈에 보이지 않는 문자로 가독성을 위한 공백이다. 

문자의 종류마다 모두 고유의 기능과 유니코드를 가진다.

 

블록 

{문장 리스트}의 형태로 여기서 말하는 블록은 ES5의 블록과는 조금 다른 개념일 수 있다. 

중괄호 안에 모든 문장이 실행되는 실행그룹이다. 

문장 리스트의 작성은 선택이며 아예 없어도 된다.

 

 

debugger

var apple = "fruit"
debugger;
console.log("11");
console.log(apple);

debegger의 위치에서 멈춘다. 단 브라우저의 개발자 도구창(콘솔 창)이 열려있을 때만 멈추고 열려있지 않으면 멈추지 않는다. ES5부터 지원한다.  

 

 

 


 

 

if  

if (a == b) {
    console.log(true);
    console.log(a);
}  
                             // true //1
if (a === b) {
    console.log(true);
    console.log(a);
} else {
    console.log(false);
}                               // false

 

if ( 조건문 ) { 문장 };

 

먼저 소괄호 안의 식을 평가후 true, false로 변환한다.

조건이 true면 문장을 실행하고 false면 다음 조건으로 넘어가거나(else if) else뒤의 문장을 실행시킨다.  

 

 

 

while 

var a = 1;
while (a < 4) {
    console.log(a);
    a++;
}                       //1 //2 //3

while( 조건문 ) { 문장 }; 

 

조건문을 먼저 평가하고 문장을 실행하며 조건문의 결과가 false가 될 때까지 문장을 반복해서 실행한다. 

반복되는 조건이 없으면 무한루프에 빠지니 주의해야한다. 

 

 

do~while

var a = 1; 
do {
    console.log("do:"+a);
    a++;
} while (a < 4) {
    console.log("while:"+a);
}                             //do: 1 //do: 2 //do: 3 //while: 3

do { 문장 } while( 조건문 ) { 문장 };

 

while문과 같이 while의 조건문을 먼저 평가하고 그 후 do 문장을 먼저 실행한다. do문장의 실행이 끝나면 그 후 while문의 문장을 조건문이 참이라면 실행시킨다. 

여기서 while의 문장은 없어도 상관없다. 

 

 

for 

for(var i=0; i < 4; i++) {
    console.log(i);
}                           //1 //2 //3 //4

var i = 0;
for( ; i < 4; ) {
    console.log(i);
    i++;
}                           

for(var i = 0; ; ) {
    if(i < 4) {
    console.log(i);
    i++;
    }
}                         

var i = 0;
for( ; ; ) {
    if(i < 4) {
    console.log(i);
    i++;
    }
}                     

 

for ( 초기값; 비교조건문; 증감 ) { 문장 };

 

초기값이 2번째 비교 조건문에서 평가되어 true면 문장을 실행시킨다. 다 실행시킨 후 증감으로 가서 값이 증감하게 되고 다시 비교 조건문에서 평가되어 true면 문장을 실행시킨다. 비교 조건문에서의 평가가 false가 나올 때까지 반복된다.

또한 위의 코드와 같이 초기값, 비교, 증감 모두 생략하거나 각각 생략할 수 있다.

하지만 그럴경우 코드가 길어져 가독성면에서 좋지 않으므로 잘 생략해서 사용하지는 않는다. 

 

 

 

 

break

var a = 0, b = 0;
while (a < 1) {
    b++;
    if(b === 3) {
    break;
    console.log(b);        
    }
    console.log(b);
}                                   //1 //2

 

break;

break 식별자; 

 

반복문을 종료시킨다. for문, for~in문, while문, do~while문, switch문에서 사용된다.

 

 

 

continue

for(var i = 0; i < 5; i++) {
    if(i === 2 || i === 3) {
        continue;
    }
    console.log(i);
}                                   //0 //1 //4

 

continue;

continue 식별자;

 

반복문을 중지시키고 처음으로 돌아간다. for문, for~in문, while문, do~while문에서 사용된다. 

 

 

 

 

 

switch

var a = 1;
switch (a) {
    case 1:
        console.log("a: one");
    case 2:
        console.log("a: two");
};                                      //a: one //a: two

var a = 1;
switch (a) {
    case 1:
        console.log("a: one");
        break;
    case 2:
        console.log("a: two");
};                                      //a: one

var a = 1;
switch (a) {
    case 2:
        console.log("a: one");
    default:
        console.log("a: none");
    case 3:
        console.log("a: two");
};                                      //a: none //a: two


var a = 1;
switch (a) {
    case 2:
        console.log("a: one");
    default:
        console.log("a: none");
        break;
    case 3:
        console.log("a: two");
};                                      //a: none


var a = 1;
switch (a) {
    case 1:
    case 2:
        console.log("a: one");
};                                      //a: one 

switch (조건문) {

case 조건문: 문장 리스트

default : 문장 리스트 };

 

switch 조건문의 평가값과 일치하는 case문장 수행한다. 단 그 조건문 이후의 모든 조건문의 문장들을 실행하기 때문에 중단시키고 싶다면 문장에 break;를 넣어주어야 한다. 

default는 switch 조건문의 평가값과 일치하는 case조건문이 없는 경우 실행된다. 이것 또한 그 뒤의 문장들이 실행하기 때문에 중단시키고 싶다면 break;를 넣어주어야 한다. 

또한 마지막과 같이 case조건문을 두개를 넣어주어 or형태의 조건으로 만들 수 있다. 이것은 두 조건문 중 하나의 조건만 일치하더라도 문장이 실행된다. 

 

 

 

 

try-catch 

var apple;
try{
    apple = lemon;
} catch(error) {
    console.log("This is catch");
};                                              //This is catch


var apple;
try{
    apple = lemon;
} catch(error) {
    console.log("This is catch");
}finally {
    console.log("This is finally")
};                                              //This is catch //This is finally

try { } catch (식별자) { };

try { } finally { };

try { } catch (식별자) { } finally { };

 

try문에서 예외발생을 인식하고 예외가 발생한다면 catch문을 실행시킨다. 

finally는 예외 발생과 상관없이 실행된다. 

 

 

 

 

throw 

var apple;
try{
    throw "This is throw";
    apple = 4;
} catch(error) {
    console.log(error);
    console.log(apple);
};                                              //This is throw  //undefined

try{
    throw {
        msg1: "This is",
        msg2: "Throw"
    };
  } catch(error) {
    console.log(error.msg1);
    console.log(error.msg2);
};                                              //This is //Throw (string)

try{
    throw new Error("This is throw");   
  } catch(error) {
    console.log(error.message);
};                                              //This is throw (object)

 

throw 표현식;

 

예외를 일부러 발생시키는 것으로 예외가 발생하면 catch를 실행시킨다. throw문이 실행되면 더 이상 아래의 try문 문장들은 실행되지 않고 곧바로 catch의 문장들이 실행된다. 또 표현식은 문장 리스트 블록의 형태로도 가능하고 함수가 올 수도 있다. 

 

 

 

strict mode 

apple = "fruit"
console.log (apple);            //fruit


"use strict";
try{
    var apple = "fruit"
    console.log(apple);
    lemon = "There's no variable declaration"
    console.log(lemon);
} catch(error) {
        console.log("error!");
        console.log(error.message);
    }                              
                 //apple  //error! //There's no variable declaration

 

"use strict"; 

 

자바스크립트의 문법을 엄격하게 사용하겠다는 선언이다. 작성한 위치에서부터 시작된다.