scope 4

this와 .call, .apply에 대해서 - JavaScript(201020 수정)

함수 실행(call) 시 로컬 메모리와 로컬 실행 컨텍스트(execution context)가 생성된다. 단, execution context(a.k.a 메모리 테이블)은 함수 단위의 스코프에 생긴다(블록 단위가 아님) execution context의 call stack에 담기는 것들 -scope 내 변수 및 함수(Local & Global) -전달 인자(arguments) -호출된 근원(caller) =어디서 불렀는지임 ex)해당 함수를 호출하는 함수 -this this? (보통 exectution context와 this를 구분하지 않지만 엄밀히는 아래와 같음) - 모든 함수 scope 내에서 자동으로 설정되는 특수한 식별자 - execution context의 구성 요소 중 하나로, 함수가 실행되..

JavaScript 2020.09.28

var 키워드의 범위(Scope)에 대해 - Javascript

var x = 30; function get() { return x; } function set(value) {var x = value;} set(10); var result = get(20); 여기서 정답은 10이 아니라 30이다. 왜냐? var의 스코프는 함수범위(Function Scope)이기 때문이다. var 키워드의 스코프를 전역범위(Global Scope)로 착각하지 말 것. 그렇다면 정답이 10이 되려면 어떻게 해야 할까? set 함수에서 x를 var로 선언하지 말고 바로 x = value라고 입력하면 된다. 이러면 처음에 선언했던 x가 전역변수로 취급되어 값이 value로 바뀌게 된다.

JavaScript 2020.09.16