부트캠프교육중/JavaScript
[JavaScript] scope문제풀이
뭉지야
2023. 1. 4. 20:01
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