어제 프로토타입에 대해 공부했었다. 오늘 공부한 프로토타입 체인을 우리가 자주 사용하는 배열을 예로 설명해보겠다. 프로토타입은 객체의 원형으라고 했다. 그래서 우리가 배열을 생성할 때 let arr = [] 이런식으로 배열을 생성해도 내부적으로는 new Array() 같이 생성자 함수로 선언되었다는 것을 알 수 있었다. 이렇게 생성된 인스턴스 arr 은 생성자 함수에게서 메소드를 상속받는다. arr 배열 객체의 원형은 Array 임을 알 수 있다. 그럼 객체는 프로퍼티일까 ? 정확히는 아니라고 할 수 있다. 함수 객체가 가지는 프로토타입이라는 특수한 형태의 객체 프로퍼티를 통해 상속받는 것이다 ! 따라서 Array.prototype 객체를 살펴보면 배열에서 사용한 메소드들을 찾아볼 수 있는 것이다. Ar..
코드스테이츠 프론트엔드
프로토타입이라는 단어는 매우 생소했다. 또한 공부하기도 어려웠다 .. 잘 이해가 안됐던 거같다 ㅜ.ㅜ 조금 더 공부가 필요할 것 같다 !! 그래도 공부해본 프로토타입과 클래스에 대해 정리해보겠다 . 프로토타입(Prototype) 프로토타입은 원형 객체를 의미하며 자바스크립트는 프로토타입 기반 언어이다. 프로토타입 기반 언어 ? 모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체를 가진다는 의미 프로토타입 객체도 또 상위 프로토타입 객체로부터 메소드와 속성을 상속 받을 수 있고 그 상위도 마찬가지이다. 이를 프로토타입 체인이라고 하며 이에 관한 내용은 다음 블로깅때 정리하겠다. 즉 상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 prototype이라는 속성에 정의되어있..
클래스와 인스턴스에 대해 배우고 이를 포함한 큰 개념인 객체 지향 프로그래밍에 대해 배웠다. 예전 처음 코딩을 접했을 때 c언어를 배웠었는데 그 후 자바를 배웠을 때 확실히 사용하기 편했던 것이 기억이 난다. 그 기억을 떠올려가며 오늘 공부한 객체 지향 프로그래밍에 대해 작성해보겠다 ! 절차적 언어 vs 객체지향 언어 절차적 언어는 별개의 변수와 함수로 순차적으로 작동한다 하지만 객체지향 언어는 데이터의 접근과 , 데이터의 처리과정에 대한 모형을 만들어 데이터와 기능이 별개로 취급되지 않고 한 번에 묶어 처리할 수 있다. OOP ? Object Oriented Programming 의 약자로 프로그램 설계 철학을 의미한다. 모든 것을 객체로 그룹화 하고 4가지 주요 개념을 통해 재사용성을 얻을 수 있다...
오늘 포스트는 내 머릿속에 존재하는 개념 중 헷갈렸던 개념이나 새롭게 알게된 개념에 대해 카테고리를 나누어 정리하고자 한다 ! LetConst 내 머릿속 "const 를 사용하여 변수를 선언하면 어떠한 변수든 재할당이 금지되는 것이다 ! " 라고 생각했었다. 항상 봐왔던 const 를 사용한 예제에서는 문자열이나 숫자 타입만 다뤘었던 거같다. 그래서 배열과 객체에서는 const 로 사용하는 예제를 접해본 적이 없었다. 따라서 나는 배열과 객체를 const로 선언하면 당연히 재할당이 금지되므로 새로운 요소를 추가하거나 삭제하는 것도 금지될 줄 알았다. 새롭게 알게된 사실 1. const 로 선언된 배열 , 객체의 경우 새로운 요소를 추가하거나 삭제할 수 있다. const arr = []; const toB..
오늘은 내가 생각하는 코딩의 기초이자 코딩의 꽃 조건문 ,반복문 , 함수에 대해 공부해보았다. 어제는 간단하게 변수와 타입에 대해 배웠었는데 오늘은 조금더 심화된 부분을 배운 거 같다. 다른 언어들과 유사한 부분이 많아서 공부하기는 쉬웠던 거 같다 ! 공부를 하면서 헷갈렸던 부분이나 중요한 부분을 작성해보겠다. 동치연산자(===) 동치연산자는 두 피연산자가 동일하면 true, 그렇지 않으면 false를 반환한다. !== 는 반대로 두 피연산자가 동일하지 않으면 true, 동일하면 false를 반환한다. 예전에 나는 조건문을 쓸 때 항상 == ,!= 를 써왔었다. 자바스크립트에는 === 가 있는걸 알고 있음에도 다른 언어에서 쓰이듯 == , != 를 써왔었는데 오늘 멘토분께서 자바스크립트에서는 무조건 동치..