: 조건에 따라 프로그램 흐름 나눠서 특정 코드 실행
switch( /*비교할 값*/ ){
case /*값1*/:
/*비교할 값이 값1인 경우 실행될 코드*/
break;
case /*값2*/:
/*비교할 값이 값2인 경우 실행될 코드*/
break;
/*
... 여러개의 case
*/
default:
/*비교할 값이 위의 모든 값과 다른 경우 실행될 코드*/
break;
}
break 구문이 swich-case 문의 마지막 중괄호 밖으로 나오게 함

처음에 case 1,3,5: 이런식으로 작성했을 때 안 되는 것을 보고 찾아서 해결해냄
: 조건에 따라 프로그램 일정 코드를 반복적으로 수행할 수 있도록 함
while( /*조건식*/ ){
/* 반복 실행될 코드 */
}
continue : 남은 반복실행 될 코드 모두 건너 뜀
break: 반복문 탈출

: 한 번 코드 실행되고 이후에 반복실행할지 말지 결정함
do{
/* 반복 실행될 코드 */
}while( /*조건식*/ );
do 구문을 먼저 쓰고 다음에 while 작성하여 반복문 실행
do{
var ans= parseInt(prompt("1+1=?"));
} while(ans!=2);
console.log("맞춤");
: 초기구문, 업데이트구문, 반복조건을 한 구문에 합친 반복문
// while 문
var sum = 0;
var i = 0; //초기 설정 코드
while( i < 5 /*조건식*/ ){
sum = sum + i;
i++; // 업데이트 코드
}
//for문 -> 더 간결함
var sum = 0;
for( var i = 0 ; i < 5 ; i++ ){
sum = sum + i;
}
주의해야할 점 : 반복실행 될 코드는 조건이 만족하지 않으면 한 번도 실행 안되지만
초기화 코드는 항상 실행됨
?뭔가 비슷하면서 다르니까 헷갈림..
for문에서 continue를 만나면 update구문(i++)으로 이동해서 업데이트 한 후 조건식 검사함
while문에서 continue를 만나면 반복실행 코드 끝으로 이동해 바로 조건식 검사함

: 객체의 각 엘리먼트에 접근할 수 있는 반복문
Object.keys(obj) : 객체를 인자로 받아서 객체의 속성들을 인자로 반환
for( var propertyName in obj ){
console.log( "\t", propertyName, ": ", obj[propertyName] );
}
따로 초기화코드나 업데이트 코드 존재하지 않지만
obj안에 propertyName를 하나씩 반복해서 넣음
for in 구문 외 in : 연산자로 동작 (해당 속성의 이름이 객체에 존재하는지 검사함 T/F)

: 선언한 변수가 유효한 영역
function a(){
var v_a="a";
function b(){
var v_b="b";
console.log("o: ",typeof(v),typeof(v_a),typeof(v_b));
}
console.log("o: ",typeof(v),typeof(v_a),typeof(v_b));
}
var v="v";
console.log("o: ",typeof(v),typeof(v_a),typeof(v_b));
> b:string string string
> a: string string undefined
> o :string undefined undefined
변수의 scope 는 function의 scope를 따른다
(객체는 선언된 함수 안에서만 접근이 가능함)
: 함수 안에서 밖에서도 선언된 같은 이름의 변수를 사용하는 경우
<함수 안에서 밖에서도 선언되었던 같은 이름의 변수 사용한 경우>
<함수 안에서만 같은 값이 유지되어야하는 경우>
<여러 함수에서 값이 유지되면서 사용되는 변수인 경우>

? 변수 i를 shadowing 효과 줘야 한다는 것은 감으로 이해했는데 자세히는 이해하지 못한것같다. 왜 i=0 으로 변수를 초기화해야하는 거지
함수 역시 객체의 속성이 될 수 있음
function f(){
console.log(this);
console.log("f is called");
}
var o={name:"object",method:f};
//f함수를 바로 불러올 수 있음
f();
o.method();
this (예약어)
함수 f가 불렸을때 어떤 객체의 파일들의 속성으로 불렸는지 알게해줌
-> 일반적인 함수를 호출할때 브라우저인 경우 window 객체에 바인딩 됨
-> 객체 메소드로써 호출할 때는 object가 출력됨
: 함수와 함수가 선언될 때의 environment 로 구성됨
function makeCounterFunction(initVal){
var count = initVal;
function Increase(){
count++;
console.log(count);
}
return Increase;
}
var counter1 = makeCounterFunction(0);
var counter2 = makeCounterFunction(10);
함수가 하나인 것 처럼 보이는데 Increase 함수가 실행될 때마다 count값이 1이었다가 10 이었다 함
makeCounterFunction(0); 호출 했을 때 increase함수가 만들어지면서
closure가 가리키는 함수
: function Increase(){}
closure의 environment
: var count = 0;
makeCounterFunction(10);
closure가 가리키는 함수
: function Increase(){}
closure의 environment
: var count = 10;
count 1, count2 변수 값을 바깥에서 직접 제어할 수는 없음
? 너무 어려운데 강의 내용이 짧아서 더 이해하기 힘들엇다..

왜 틀렸는지 잘 모르겠다
double answer = 0;
return answer; 을 어떻게 사용해야할 지 모르겠고 size_t 변수도 언제 어디에 사용할 지 모르겠다.
아직 난 코딩이랑 멀리 떨어져있는것 같다....
완강인증

