본문 바로가기
728x90
728x90

Frontend/JavaScript9

자바스크립트 스코프와 클로저 자바스크립트 스코프와 클로저 스코프란? 스코프는 참조 대상 식별자를 찾기 위한 규칙으로 식별자가 어디에 선언 되었는지에 따라 유효한 범위를 가진다. var x = "global scope"; function f1 () { var x = "function scope"; console.log(x); } f1(); 위 코드에서 전역에 선언된 변수 x는 어디에서든 참조할 수 있지만 함수 f1 내에 선언된 변수 x는 f1 내에서만 참조 할 수 있는데 이러한 규칙을 스코프라고 한다. C에서 파생된 대부분의 언어는 블록 레벨 스코프로 중괄호 { …}를 통한 지역화가 가능하다. var x = 0; { var x = 1; console.log(x); // 1 } console.log(x); // 1 하지만 자바스크립트는.. 2023. 3. 24.
자바스크립트 this 자바스크립트 this 자바스크립트에서의 this는 Java와 같은 언어에서의 this와 그 의미가 다르다. Java에서의 this는 인스턴스 자신을 가리키는 참조변수 이지만 자바스크립트에서는 해당 함수의 호출 방식에 따라 this에 바인딩 되는 객체가 다르다. 함수를 선언할 때 this에 바인딩할 객체가 정적으로 결정되는 것이 아니고 함수가 어떻게 호출 되었는지에 따라 this에 바인딩할 객체가 동적으로 결정된다. 함수 호출 function f1() { console.log(this); //window function f2() { console.log(this); //window } f2(); } f1(); 기본적으로 this는 전역 객체에 바인딩 되는데 전역 함수가 아니라 내부함수여도 그렇다. 내부함수.. 2023. 3. 23.
자바스크립트 함수 자바스크립트 함수 일급 객체 일급 객체는 생성, 대입, 연산, 인자 또는 반환값으로 사용할 수 있는 대상이다. 일급 객체는 다음과 같은 조건을 만족해야한다. 무명의 리터럴로 표현 변수나 자료 구조에 저장 가능 함수의 매개변수에 전달 가능 반환값으로 사용 가능 자바스크립트의 함수는 일급 객체이고 다른 값들처럼 사용할 수 있다. 변수나 객체, 배열 등에 저장, 인수, 함수의 반환값으로도 사용될 수 있다. 함수와 다른 객체를 구분짓는 특징은 호출을 할 수 있다는 것이다. 함수의 정의 방법 일반적인 프로그래밍 언어의 함수 정의 int add(int x, int y) { return x+y; } 일반적으로 함수명, 파라미터, 반환타입을 통해서 함수를 정의할 것이다. 자바스크립트는 함수를 정의하지 않고 만든다. F.. 2023. 3. 22.
자바스크립트 object 객체 자바스크립트 object 객체 자바스크립트는 객체 기반의 스크립트 언어이며 원시 타입을 제외한 나머지 값들(함수, 배열, 정규표현식)은 모두 객체이다. 자바스크립트 객체는 key와 value로 구성된 프로퍼티들의 집합이다. 정적인 객체 정의와 동적인 객체 정의 C++, C#, Java와 같은 객체지향 언어는 Object라는 개념을 가지고 class로 객체의 형식과 타입을 정의하고 실체화 하여 객체를 사용한다. 하지만 자바스크립트는 객체를 만들고 객체를 정의한다. 그래서 자바스크립트는 동적인 객체정의라고 하고 기존의 언어에서는 정적으로 객체를 정의한다. 객체 생성 방법 객체 리터럴 var person = { name : "Gildong", age : 20, }; Object 생성자 함수 var person.. 2023. 3. 21.
728x90
728x90