본문 바로가기

언어의 기초/자바스크립트(Javascript)11

[Javascript]Object.create() & ES6 프로토타입을 상속받는 방법에는 추가적인 방법이 더 있다. 그중 하나는 Object.create() 를 사용하는 방법과 ES6 두가지가 존재한다. Object.create() 사용 Object.create() 는 포로토타입의 객체 및 속성을 그대로 가져오는 메소드로, 상위클래스의 메소드를 하위클래스 메소드로 가져올 수 있다. 다만 상위클래스의 constuctor가 복사되어 오기 때문에 하위클래스 constuctor를 따로 지정해 주어야 한다. 이전 포스팅에서 사용했던 예제를 이용해 보겠다. function Player(name, team, position){ this.name = name this.team = team this.position = position } player.prototype.homer.. 2020. 5. 12.
Object Prototypes prototype 프로토타입은 흔히 '시제품'이나 '견본'의 의미를 뜻하며, 자바스크립트 내에서는 객체의 속성이 아닌 객체의 프로토타입 속성으로 정의된다. 즉, 객체의 원형으로 하나의 틀이라고 생각하면 된다. 자바스크립트는 흔히 프로토타입 기반의 언어라고 부르며, 모든 객체와 속성을 받는 템플릿으로 프로토타입 객체를 가진다고 할 수 있다. 상위 프로토타입 객체로 상속받기 위해 연결하는 것은 프로토타입 체인이라고 부른다, 프로토타입 속성에서 파생된 객체를 __proto__ 로 접근이 가능 하다. prototype 예제 프로토타입을 이해하기 위해서 우선 프로토타입의 예제를 통해서 알아보자. function player(name, team, position){ this.name = name this.team .. 2020. 5. 10.
Object Oriental Programming Object Oriental Programming 이란 무엇인가? Object Oriental Programming(객체 지향 프로그래밍)이란 컴퓨터의 언어 작동원리 중 하나이다. 초기 컴퓨터의 언어의 역사는 0,1 로 이루어진 2진법 언어만을 사용해왔다. 이 언어를 Machine Langage라고 한다. Machine Langage는 초기 컴퓨터가 만들어 지면서 부터 현재까지 모든 컴퓨터의 기초 작동 원리로 작동되고 있으며, 여담이지만 0, 1을 동시에 연산할 수 있는 컴퓨터가 양자컴퓨터이다. 하지만 이진법으로 이루어진 Machine Langage는 사람들이 접근하기에는 굉장히 어려운 언어였다, 그렇게 해서 만들어진 언어가 assembly language이다. 컴퓨터가 발전하면서 프로그래밍도 복잡해지면.. 2020. 5. 8.
[Javascript] Scope Scope란 지역적인 뜻을 내포하고 있으며, 쉽게말해 어떤 블록({})이나 함수를 만들었을 때 그 범위에 해당되는 것을 의미하기도 한다. 우리가 변수를 선언할때 흔히 var / let / const 이 3가지를 쓰고 있으며, 이 3개는 각각 다른 특징을 가진다. 우선 첫번째로 var 에 대해서 설명하고자 한다. var는 해당 함수 레벨 scope에서 변수로서 정의되어 작동한다. 예를 들어 var abs = 10 function numb () { var abs = 20 console.log(abs) } console.log(abs) // 10 numb() // 20 함수내에서 정의된 값은 함수가 생성되면 그 값을 받고, 함수 밖에서 경우에는 함수 밖(전역)에서 정의한 값을 받는다. 하지만 블록 레벨 sco.. 2020. 5. 1.
git workflow & conflict 해결 이전에 git 과 github 사용 법에 대해 배워왔다. 이번에는 pair programming을 위한 workflow를 배워보도록 하자. 그전에 우선 git workflow가 어떻게 이루어지는 지를 알아야 한다. git workflow github에서 fork를 하고 my repo에서 git clone을 하게 되면 local로 작업을 불러들일 수 있다. working directory에서 코딩작읍을 한 이후 git add를 통해 staging area에 저장되고 git commit을 하여 해당 작업에 대한 메세지를 넣어 local repo로 옮겨진다. 이상태에서 git push origin master를 입력하여 my repo로 넘어간다. 새로운 브랜치를 만들어 진행하기 위해서는 git checkout.. 2020. 4. 29.
[Javascript] 재귀함수 (알고리즘) 알고리즘이란 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것, 계산을 실행하기 위한 단계적 절차를 의미한다. 알고리즘에 대한 공식적인 정의는 없지만, 좋은 알고리즘의 조건은 존재한다. 정밀성 : 변하지 않는 명확한 작업 단계를 가져야 한다. 유일성 : 각 단계마다 명확한 다음 단계를 가져야 한다. 타당성 : 구현할 수 있고 실용적이어야 한다. 입력 : 정의된 입력을 받아들일 수 있어야 한다. 출력 : 답으로 출력을 내보낼 수 있어야 한다. 유한성 : 특정 수의 작업 이후에 정지해야 한다. 일반성 : 정의된 입력들에 일반적으로 적용할 수 있어야 한다. 그리고 알고리즘을 구현하는 방식으로 재귀 알고리즘이 있으며, 이것이 재귀함수이다. 재귀함수란 하나의 함수에서 자신을 다시.. 2020. 4. 23.
[Javascript]기초 메소드(Number / String / Array) 메소드란 자바스크립트 내에 내장되어 있는 객체(내장 객체)를 의미한다. Number / String / Array 등 각각에 적용되는 메소드 역시 따로 존재한다. 첫번째로 Number Method에 대해 알아보자. 메소드에는 수많은 종류가 있지만, 그나마 자주 쓰이는 메소드는 다음 표와 같다. Number(문자열) 숫자로 변환 Math.abs(숫자) 숫자의 절대값을 반환 Math.max(숫자1, 숫자2, 숫자3 ...) 숫자 중 가장 큰 값을 반환 Math.min(숫자1, 숫자2, 숫자3 ...) 숫자 중 가장 작은 값을 반환 Math.pow(숫자, 제곱값) 숫자의 거듭제곱값을 반환 Math.random() 0~1 사이의 난수를 반환 Math.round(숫자) 소수점 첫째 자리에서 반올림 하여 정수를 반.. 2020. 4. 14.
[Javascaript]배열과 객체 배열이란 [] (대괄호) 안에서 나열되어있는 형태를 말한다. 배열은 기본적으로 let array = [ 1, 2, alpha, beta]; 의 형태를 지닌다. 배열의 경우 안에 있는 내용을 Element(요소)라고 하며, 각 요소의 위치를 index라고 한다. 주의할 점은 index가 1 이 아닌 0 일때 부터 시작한다는 점이다. array[0] // 1 array[3] // beta 반복문인 for문을 통해서 각 인덱스의 값을 호출할 수 있는데 for(let i = 0; i < array.length; i++){ console.log(array[i]) } // 1 , 2, alpha, beta 로 나타낼 수 있다. 그리고 array의 빈객체를 나타내고 싶을 때는 array = [] ; [] === ar.. 2020. 4. 8.
[Javascript]함수 자바스크립트에서 함수란 지시사항의 묶음으로써 입력 => 함수 => 출력 의 과정을 거치게 된다. 수학식에서 함수 f(x) = x * 2 라고 가정하면 f(2) = 4 f(3) = 6 의 결과 값이 나올 것이다. 함수는 굳이 수학식이 아니더라도 가능하다. 수학식에서는 f(x) 로 표기 되지만 Javascript에서는 함수이름(입력값) 형태로 나타낸다. let length = getLength("안녕") console.log(length) // 2 함수의 선언은 두가지 형태로 할 수 있다. function = newFunction(input){ // 컴퓨터에 지시할 내용 } // (함수 선언식) let newFunction = function(input){ // 컴퓨터에 지시할 내용 } // (함수 표현식).. 2020. 4. 6.