1)문장(Statements)
책에서는 좀 더 복잡하게 나와있는데 본인이 정리를 좀 하자면
조건문,반복문,벗어나는 문? 으로 나눌 수 있다고 본다.
조건문 - if, switch
반복문 - for while
벗어나는 문 - return, break
블록(Then)은 중괄호로 쌓인 문장의 집합이다. 다른 언어들과 달리 자바스크립트에서 블록은 새로운 유효범위(scope)를 생성하지 않는다.
변수는 블록 안에서가 아니라 함수의 첫 부분에서 정의해야 한다.,
1)if문
표현식의 값에 따라 프로그램의 흐름을 변경된다. then 블록은 표현식이 참(true)일 떄 실행, 표현식이 거짓인 경우 else 블록을 실행(선택적)
거짓에 해당하는 값은 6가지가 있다.
- false
- null
- undefined
- 빈 문자열 ' '
- 숫자 0
- NaN
이 외의 모든 값은 참이다. (true, 문자열 'false', 모든 객체 등...)
1 2 3 4 5 6 7 8 9 | if ( 표현식 ) { //then 블록 (참) } else { //거짓(선택적) } | cs |
if문에는 여러가지 기능?이 더 있는데 else if문 중첩 if문 이다. 간단하게 알아보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | if ( 표현식 ) { //then 블록 (참) } else if (표현식) { //거짓(선택적) } if ( 표현식 ) { //then 블록(참) if ( 표현식 ) { //then 블록 (참) } } | cs |
else if 문은 false(거짓)으로 실행 할 경우에도 조건을 줄 수 가 있다.
중첩 if 문 같은 경우에는 if문 안에 if문을 하나 더 넣어서 참 값에서 조건을 또 만들어서 중첩if문을 실행 할 수 있다.
2)switch문
switch문은 다중 분기를 수행한다. 표현식과 모든 case 문의 표현식이 같은지를 비교한다.
표현식의 결과값은 숫자일수도 문자열일수도 있다. 일치하는 표현식을 찾으면 해당하는 case절에 있는 문장을 실행한다.
일치하는 표현식이 없을 경우 default절의 문장을 실행한다.(선택적)
1 2 3 4 5 6 7 8 9 | switch ( 표현식 ) { case 표현식 : //문장 break; case 표현식 : //문장 break; case 표현식 : //문장 break; default : //문장 }; | cs |
case절은 하나 이상의 case 문을 포함하고 case 절의 표현식은 꼭 상수일 필요가 없다.
case절은 문장의 마지막에는 다음 case절로 넘어가지 않게 벗어나는 문장을 사용해야 된다.(break문)
3)while문
while문은 단순 반복 수행 문장이다. 표현식이 참인 동안은 블록을 반복해서 실행하며 표현식이 거짓이면 반복 수행을 종료한다.
1 2 3 4 5 | while ( 표현식 ) { //블록 } | cs |
4)for문
for문은 조금 복잡하다. 두가지 형식이있다. 하나씩 알아보자.
일반적인 형식은 초기,조건,증가 라는 세가지 절로 제어 되는 구조인데 세가지 절은 모두 선택적이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | for ( 초기;(1) 조건;(2) 증가(4) ) { //블록(3) }; //배열이라 가정 for ( 이름(변수) in 표현식(객체) ) { //블록 } for ( var i = 0 ; i < 10; i++ ) { alert(i); } a = {"a" : 1 , "b" : 2, "c": 3}; var s = ""; for ( var key in a ) { s += key + ":"+ a[key]; s += "<br/>"; }; document.write(s); //Output //a:1 //b:2 //c:3 |
먼저 초기를 실행한다.(1)(반복 횟수를 제어하는 변수를 초기화한다.)
그 다음 조건 부분이 만족하는지를 검사(2)(반복 횟수를 제어하는 변수가 조건에 만족하는지 확인 만약 조건 부분이 생략되면 참으로 간주함)
조건 부분의 검사 결과가 거짓이면 반복을 종료함
조건을 만족해서 블록을 한번 실행하면(3) 증가 부분을 실행하고(4) 다시 조건 검사를 반복
for in문 같은 경우는 객체의 속성 이름(or 키)을 열거하는 것이다.
각각의 반복 실행마다 객체에 있는 각각의 속성 이름을 변수에 할당한다.
5)return문, break문
return문은 함수에서 호출한 곳으로 돌아가는 역활을 한다. 또는 이 문장은 반환값을 지정 할 수 있다. 표현식이 지정되지 않으면 undefined로 반환
(return과 표현식 부분 사이에 줄 바꿈을 허용하지 않는다.)
1 | return //표현식(선택); | cs |
break문은 반복문이나 switch문에서 흐름을 벗어나게 하는 역활 이 문장은 라벨 이름을 취할 수 있는데 라벨이 주어지면 라벨이 붙은 문장의 끝으로 이동합니다.
1 | break //이름(라벨); | cs |