# INDEX
1. 변수와 자료형
2. 조건문
3. 문자열
4. 반복문
5. 배열
6. 객체
7. 고차함수
8. 재귀
9. Algorithm Basic
10. 기타 (스코프&클로저)
***매일 문제를 풀면서, 정확하게 알지 못했던 부분들을 다시 정리해보자 ^.~
// 10
var x = 30;
function get(x) { return x;};
var result = get(20);
// 30
var x = 30;
function get() { return x; }
function set(value) { var x = value; }
set(10);
var result = get(20);
// 10
var x = 30;
function get() {
return x;
};
function set(value) {
x = value;
};
set(10);
var result = get(20);
// 30
x = 10;
function add(y) {return x + y};
function added(x) {return add(x) + add(x)};
var result = added(5);
x = 10;
function add(y) {return x + y}; // 3) 매개변수 y = 5 // return 10(전역변수 x=10)+5 // return 15
function added(x) {return add(x) + add(x)}; // 2) 매개변수 x = 5 // return add(5)+add(5)
// 4) add(5)+add(5) = 15+15 = 30
var result = added(5); // 1) 함수 호출
// 20
x = 10;
function outer() {
var x = 20;
function inner () {
return x
};
return inner()
};
var result = outer();
x = 10;
function outer() {
var x = 20; // 2) 지역변수 x = 20
function inner() {
return x // 4) return x // x = 20 // 이 값이 최종 result의 값
};
return inner() // 3) return inner() : 함수 호출
};
var result = outer(); // 1) 함수호출 go up!
// 20
var x = 10;
function outer() {
x = 20;
function inner() {
var x = x + 20;
return x;
};
inner();
}
outer();
var result = x;
var x = 10; // 1) 전역변수 x = 10
// 4) 전역변수 x = 20 (이곳으로 이동)
function outer() {
x = 20; // 3) x는 전역변수 선언 // 전역변수 x = 20 (이동!)
function inner() {
var x = x + 20; // 6) 지역변수 x = x + 20; // 지역변수 x = 전역변수x(20)+20 = 40;
**// 지역변수 x를 선언하면서 x+20은 inner함수 안에 갇히게 됨 //
**// 따라서, inner함수 내의 x값은 NaN
return x; // 7) return x // x = 40;
};
inner(); // 5) inner 함수 호출
}
outer(); // 2) outer 함수 호출
var result = x; // 8) result = x; // 4)의 전역변수 x값이 할당되어 x = 20