-
3.6 JavaScript Koans 블로깅 과제카테고리 없음 2023. 3. 6. 16:03
it('lexical scope와 closure에 대해 다시 확인합니다.', 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); }); });
스코프 이놈들
스코프의 정의
"변수 접근 규칙에 따른 유효 범위"
- 안쪽 스코프에서 바깥쪽 스코프로는 접근할 수 있지만 반대는 불가능합니다.
- 스코프는 중첩이 가능하다.
- 가장 바깥의 스코프는 전역 스코프 (Global Scope) <-> 전역이 아닌 다른 스코프는 전부 지역 스코프(local Scope)
- 지역 스코프에서 선언한 변수는 지역 변수, 전역 스코프에서 선언한 변수는 전역 변수
- 지역 변수는 전역 변수보다 더 높은 우선순위를 가짐
const 키워드
- 변하지 않는 값, 곧 상수(constant)를 정의할 때에는 const를 이용합니다.
- 값의 재할당이 불가능합니다. 값을 재할당할 경우 TypeError를 내므로, 의도하지 않은 값의 변경을 막을 수 있습니다.
- let 키워드와 동일하게 블록 스코프를 따릅니다.
정말 제대로 알고 있어야 하는것
type of 1 // 'number'
type of '1' // 'string' 문자열