728x90
function () {
let age = 27;
let name = 'jin';
let height = 179;
function outerFn() {
let age = 24;
name = 'jimin';
let height = 178;
function innerFn() {
age = 26;
let name = 'suga';
return height;}
innerFn();
expect(age).to.equal(??);
expect(name).to.equal(??);
return innerFn;
}
const innerFn = outerFn();
expect(age).to.equal(??);
expect(name).to.equal(??);
expect(innerFn()).to.equal(??);
});
});
// ??에 들어갈답은?
#정답
function () {
let age = 27;
let name = 'jin';
let height = 179;
function outerFn() {
let age = 24;
name = 'jimin';
let height = 178;
function innerFn() {
age = 26;
let name = 'suga';
return height;}
innerFn();
expect(age).to.equal(26);
expect(name).to.equal('jimin');
return innerFn;
}
const innerFn = outerFn();
expect(age).to.equal(27);
expect(name).to.equal('jimin');
expect(innerFn()).to.equal(178);
});
});
#풀이
디버그를 해보니 12345순서로 따라갔다
구역을 나눠서 정리해보니
27
jin -> jimin
179
----------------------
24->26 outerfn
undefined
178
---------------------
inner
"suga"
178
이렇게 되었다
그래서 안에 답은 26과 jimin이고
밖은 27, jimin, 178이었다.
728x90
'부트캠프교육중 > JavaScript' 카테고리의 다른 글
[JavaScript] 화살표함수 (0) | 2023.01.04 |
---|---|
[JavaScript] const (0) | 2023.01.04 |
[JavaScript] 스코프 문제 (0) | 2023.01.03 |
[JavaScript] ES6주요문법 (0) | 2023.01.03 |
[JavaScript] 클로저 (0) | 2023.01.02 |