console.log("Menu");
console.log("1. Ice Americano");
console.log("2. Cafe Latte");
console.log("3. Cappuccino");
console.log("4. Tea");
var count=0;
while(count <3){
var choice = parseInt(prompt("메뉴를 선택"));
console.log(choice + "번 메뉴를 선택함");
switch(choice) {
case 1:
console.log("아이스 아메리카노는 1500원");
break;
case 2:
console.log("카페 라떼는 1800원");
break;
case 3:
console.log("카푸치노는 2000원");
break;
case 4:
console.log("홍차는 1300원");
break;
default:
console.log("sorry. 그런 메뉴 없음");
break;
}
count++;
}
console.log("bye");


while(조건식) 에 따라 반복할 지 결정var cond=false;
while(cond) {
console.lgo("이 구문 실행 안됨");
}
do{
console.log("이 구문 한 번 실행됨");
}while(cond);
continue; 만나면 업데이트 구문으로 이동, 반면 while문에서 continue; 만나면 반복실행 코드의 끝으로 이동 후에 바로 조건식 검사
var obj={
name:"object",
weight:30,
isObject:true,
arr:[1,2,3],
obj:{property:1}
};
console.log("for 구문으로 object property 반복");
var property_list = Object.keys(obj);
console.log("property list: ",property_list);
for( var i=0 ; i<property_list.length ; i++ ){
var propertyName = property_list[i];
console.log( "\t", propertyName, ": ", obj[propertyName] );
}
console.log("\n\nfor in 구문으로 object property 반복하기");
for( var propertyName in obj ){
console.log( "\t", propertyName, ": ", obj[propertyName] );
}

객체에 해당 속성이 존재하는 지 확인할 수 있음

function a(){
var v_a="a";
function b() {
var v_b="b";
console.log("b : ", typeof(v), typeof(v_a), typeof(v_b));
}
b();
console.log("a : ", typeof(v), typeof(v_a), typeof(v_b));
}
var v="v";
a();
console.log("o : ", typeof(v), typeof(v_a), typeof(v_b));

var 사용해 선언function shadowing_ex(){
console.log("F",val);
val++;
}
var val=0;
shadowing_ex();
console.log("0",val);

function shadowing_ex(){
var val=0;
console.log("F",val);
val++;
}
var val=0;
shadowing_ex();
console.log("0",val);


function f() {
console.log(this);
console.log("f is called");
}
var o={name:"object", method:f};
f();
o.method();

function makeCounterFunction(initVal){
var count = initVal;
function Increase(){
count++;
console.log(count);
}
return Increase;
}
var counter1 = makeCounterFunction(0);
var counter2 = makeCounterFunction(10);
counter1();
counter2();
closure가 가리키는 함수:
function Increse(){}, closure의 environment:var count=0;


