프로그래머스 'Hello, JavaScript: 자바스크립트 입문' 강의와 구글링을 통해서 정리한 글입니다.
while( /*조건*/ ){
//실행코드
}
do{
/* 반복 실행될 코드 */
}while( /*조건식*/ );
while문과 다르게 do문은 '반복 실행될 코드'를 1회 실행한 뒤, '조건식'에 따라 코드를 더 반복할지 결정한다.
조건식이 거짓(False) 일 때,
- while : 한번도 실행되지 않음
- do, while : 한번은 실행되고 종료
0~4까지 더하는 동일한 while문과 for문.
var sum = 0;
var i = 0; //초기 설정 코드
while( i < 5 /*조건식*/ ){
sum = sum + i;
i++; // 업데이트 코드
}
var sum = 0;
for( var i = 0 ; i < 5 ; i++ ){
sum = sum + i;
}
for (인덱스 변수 초기화, 조건, 인덱스 업데이트){
실행코드
}
객체의 각 엘리먼트에 접근할 수 있는 반복문.
객체의 속성들을 출력하는 동일한 코드
var property_list = Object.keys(obj);
for( var i=0 ; i<property_list.length ; i++ ){
var propertyName = property_list[i];
console.log( "\t", propertyName, ": ", obj[propertyName] );
}
for( var propertyName in obj ){
console.log( "\t", propertyName, ": ", obj[propertyName] );
}
for-in 문은 배열에서도 사용 할 수 있다.
var arr = [1,2,3];
for (var i in arr){
console.log(i)
}
출력
0
1
2
객체의 key 값들을 차례대로 가져옴을 알 수 있다.
파이썬에서는 지역변수와 전역변수로 scope가 나뉘지만,
자바스크립트에서 변수의 scope는 하향식으로 이루어지는 듯 하다.
https://school.programmers.co.kr/learn/courses/3/lessons/150
함수 안에서 밖에서도 선언되었던 같은 이름의 변수를 사용하는 경우
함수 안에서만 값이 유지되어야 하는 경우
여러 함수에서 값이 유지되면서 사용되는 변수의 경우
function printTimesTable(a){
for(var i = 1 ; i <= 9 ; i++ ){
console.log( a + " * " + i + " = " + a*i );
}
}
for( var i = 2 ; i <= 9 ; i++ ){
printTimesTable(i);
}
함수 속의 함수에서 변수 이름이 중복되어도 변수를 새로 선언하면
그 함수에서만 지역적으로 변수가 사용된다.
https://www.youtube.com/watch?v=PAr92molMHU
개념이 어려워서 일단은
this는 this를 호출한 객체를 불러온다 정도만 생각해도 될 것 같다.
나중에 따로 정리해야지
https://www.youtube.com/watch?v=MbYShFxp-j0
function makeCounterFunction(initVal){
var count = initVal;
function Increase(){
count++;
console.log(count);
}
return Increase;
}
var counter1 = makeCounterFunction(0);
var counter2 = makeCounterFunction(10);
출력
1
11
함수 속에 함수가 있을때 먼저 호출된 함수의 변수나 속성을 하위 함수가 접근할 수 있음
근데 파이썬에서도 클로저란 개념 모르고도 문제없이 썼는데,
개념정리를 내릴려고하니 더 이해가 어려워진 느낌이다..