lessons 19. 객체지향 프로그래밍
·
프로그래밍/js
2023.02.18 자바스크립트 스터디 6회차 공부 사이트: https://poiemaweb.com/ 19. 자바스크립트의 객제치향 프로그래밍 1) 클래스 기반 vs 프로토타입 기반 종류 설명 클래스 기반 언어 - 클래스로 객체의 자료구조와 기능을 정의, 생성자 통해 인스턴스 생성 - 클래스: 같은 종류의 집단에 속하는 속성과 행위를 정의 - 모든 인스턴스는 클래스에서 정의된 범위 내에서만 작동, 런타임에 구조 변경 불가능. 프로토타입 기반 언어 - 클래스 개념 대신 별도의 객체 생성 방법 존재. (객체 리터럴, Object() 생성자 함수, 생성자 함수) - 이미 생성된 인스턴스의 자료구조와 기능을 동적으로 변경할 수 있음. 2) 생성자 함수와 인스턴스의 생성 생성자 함수와 new 연산자 통해 인스턴스..
lessons 18. 클로저
·
프로그래밍/js
2023.02.18 자바스크립트 스터디 6회차 공부 사이트: https://poiemaweb.com/ 18. 클로저 1) 클로저의 개념 클로저는 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 매커니즘을 의미한다. ① 내부 함수를 외부 함수 내에서 호출하는 경우 function outer(){ var x = 10; var inner = function() { console.log(x); }; inner(); } outer(); //10 outer()의 내부함수 inner(). inner()는 자신을 포함하고 있는 outer()의 변수 x에 접근할 수 있다. 렉시컬 스코핑에 의해 inner()는 상위 스코프는 outer()이다. #렉시컬 스코핑(Lexical scoping): 스코프는 함수를 ..
lessons 17. this 키워드
·
프로그래밍/js
2023.02.18 자바스크립트 스터디 6회차 공부 사이트: https://poiemaweb.com/ 17. this 키워드 자바스크립트에서 함수는 호출될 때 매개변수로 전달되는 인자값 외에 arguments 객체와 this를 암묵적으로 전달받는다. Java에서 this는 인스턴스 자신을 가리키는 참조변수이다. 그러나 자바스크립트는 함수 호출 방식에 따라 this에 바인딩되는 객체가 달라진다. 함수를 선언할 때 this에 바인딩할 객체가 정적으로 결정되는 것이 아니라. 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정된다. [함수 호출 방식] - 함수 호출 - 메소드 호출 - 생성자 함수 호출 - apply, call, bind 호출 ✅ 요약 1. 기본적으로 this는 전역 객체..
lessons 16. Strict mode
·
프로그래밍/js
2023.02.12 자바스크립트 스터디 5회차 공부 사이트: https://poiemaweb.com/ 16. Strict mode 1) Strict mode 개발자의 의도와 상관없는 암묵적 전역 변수는 오류를 발생시키는 원인이 될 수 있다. #암묵적 전역 변수: 변수를 선언하지 않았을 때 자바스크립트는 암묵적으로 전역 객체에 프로퍼티를 생성. ES5에서 Strict mode가 추가되었다. 자바스크립트 언어의 문법을 엄격히 적용하여 ⓐ 오류를 발생시킬 가능성이 높거나, ⓑ엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 에러를 발생시킨다. → 암묵적 전역 변수에 에러를 발생시킬 수 있다. 'use strict'; function func(){ x = 10; // 선언 X } func(); ..
lessons 15. 스코프
·
프로그래밍/js
2023.02.12 자바스크립트 스터디 5회차 공부 사이트: https://poiemaweb.com/ 15. 스코프 스코프: 참조 대상 식별자를 찾아내기 위한 규칙. 식별자 이름의 충돌을 방지한다. 1) 스코프의 구분 구분 설명 전역 스코프 (Global scope) - 코드 어디에서든지 참조 가능 - 전역 변수: 전역에서 선언된 변수. 어디에든 참조 가능 지역 스코프 (Local scope or Function-level scope) 함수 코드 블록이 만든 스코프. 자신과 하위 함수에서만 참조 가능 - 지역 변수: 지역(함수) 내에서 선언된 변수. 그 지역과 하부 지역에서만 참조 가능. 2) 스코프의 특징 대부분의 C-family 언어는 블록 레벨 스코프를 따른다. 코드 블록 내에서만 참조 가능한 스코..
lessons 14. 프로토타입
·
프로그래밍/js
2023.02.12 자바스크립트 스터디 5회차 공부 사이트: https://poiemaweb.com/ 14. 프로토타입 1) 프로토타입 객체 클래스 기반 객체지향 프로그래밍: 객체 생성 이전에 클래스를 정의, 이를 통해 객체(인스턴스) 생성 프로토타입 기반 객체지향 프로그래밍: 클래스 없이도 객체 생성 가능 ① 자바스크립트의 모든 객체는 자신의 부모 역할을 담당하는 객체와 연결되어 있다. - 상속 개념과 유사하게 부모 객체의 프로퍼티/메소드를 상속받아 사용할 수 있게 한다. - 이러한 부모 객체를 프로토타입 객체 또는 프로토타입이라고 한다. var student = { name: '홍길동', score: 88 }; console.log('student 객체는 \'name\' 프로퍼티를 가지고 있는가? >..
lessons 13. 타입 체크
·
프로그래밍/js
2023.02.08 자바스크립트 스터디 4회차 공부 사이트: https://poiemaweb.com/ 13. 타입 체크 자바스크립트가 타입 체크가 필요한 이유는 동적 타이핑에 의해 의도하지 않은 결과가 나올 수 있기 때문이다. // 어떤 타입의 값을 반환해야 하는지 명확하지 않다. function sum(a, b) { return a + b; } console.log(sum(12,5)); console.log(sum('hello ','javascript')); 1) typeof - typeof는 피연산자의 데이터 타입을 문자열로 반환한다. - null을 제외한 원시 타입을 체크하는 데는 문제가 없으나, 객체의 종류까지 구분하여 체크할 때는 사용하기 곤란하다. 피연산자 typeof null object 배..
lessons 12. 함수
·
프로그래밍/js
2023.02.08 자바스크립트 스터디 4회차 공부 사이트: https://poiemaweb.com/ 12. 함수 "어떤 작업을 수행하기 위해 필요한 문(statement)들의 집합을 정의한 코드 블록" 자바스크립트의 함수는 일급 객체이다. #일급 객체: 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체. 변수나 객체, 배열 등에 저장할 수 있고 다른 함수에 인자로서 전달될 수 있으며 함수의 반환값도 될 수 있음. [일급 객체 특징] - 무명의 리터럴로 표현 가능 - 변수, 자료구조에 저장 가능 - 함수의 파라미터에 전달 가능 - 반환값으로 사용 가능 1) 함수 정의 - 함수 선언문 - 함수 표현식 - Function 생성자 함수 ① 함수 선언문 함수 선언문 방식으로 정의한 함수는 functio..