javascript9 스코프 1. 스코프란스코프는 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙이다. 자바스크립트는 이 규칙대로 식별자를 찾는다. 말이 어렵다. 그 규칙은 무엇일까? 간단하다!식별자가 선언된 곳에서 가장 가까운 function 선언문을 찾으면 그곳이 바로 그 식별자가 사용되는 스코프이다.다음의 코드를 보자. 서울에서 김서방을 불렀다면 어느 김서방이 대답을 할까?var 김서방 = "전국 김서방"; function 전국() { console.log(김서방); } function 서울() { var 김서방 = "서울 김서방"; console.log(김서방); } function 부산() { var 김서방 = "부산 김.. 2020. 3. 28. this This자바스크립트의 함수는 호출될 때, 매개변수로 전달되는 인자값 이외에, arguments 객체와 this를 암묵적으로 전달 받는다.function square(number) { console.log(arguments); console.log(this); return number \* number; } square(2);자바스크립트의 this keyword는 Java와 같은 익숙한 언어의 개념과 달라 개발자에게 혼란을 준다.Java에서의 this는 인스턴스 자신(self)을 가리키는 참조변수이다. this가 객체 자신에 대한 참조 값을 가지고 있다는 뜻이다. 주로 매개변수와 객체 자신이 가지고 있는 멤버변수명이 같을 경우 이를 구분하기 위해서 사용된다. 아래 Java 코드의 생성자 함수 내의 this.. 2020. 3. 27. 프로토타입 prototype 끝판왕 어려운 단어 prototype을 사전에서 찾아보면 '원래의 형태 또는 전형적인 예' 라고 나와있다. 자바스크립트의 모든 객체는 자신의 부모의 모습인 [[Prototype]] 을 기억한다. 자바의 상속처럼 자바스크립트에서도 이 Prototype을 이용해 부모가 가지고 있는 정보(프로퍼티나 메서드)를 사용 가능하다. 부모의 [[Prototype]]에 접근하기 위해서는 __proto__ 라는 access proprty를 사용한다. '객체.__proto__' 이렇게 호출하면 객체(나)의 부모의 정보를 알려줘! 라고 요청하는 것이다. 1. 프로토타입 객체 Java, C++과 같은 클래스 기반 객체지향 프로그래밍 언어와 달리 자바스크립트는 프로토타입 기반 객체지.. 2020. 3. 27. 모듈 1. 모듈 ES6의 모듈은 기능에 따라 js코드들을 파일 별로 넣어놓고 필요할 때 로드하여 사용하는 것을 의미한다. 모듈 기능 지원하기 전의 자바스크립트는 js파일 여러개를 한 번에 로드 하였을 경우 하나의 전역을 공유하게 되어 전역변수가 중복되는 등의 문제가 발생할 수 있다. // foo.js var x = "foo"; // 변수 x는 전역 변수이다. console.log(window.x); // foo // bar.js // foo.js에서 선언한 전역 변수 x와 중복된 선언이다. var x = "bar"; // 변수 x는 전역 변수이다. // foo.js에서 선언한 전역 변수 x의 값이 재할당되었다. console.log(window.x); // bar 두 개의 js파일을 로드하였을 경우 같은 이름.. 2020. 3. 27. 이전 1 2 3 다음