목록전체 글 (447)
For Programmer

안녕하세요. 리액트 - 노드js를 활용하여 유튜브 사이트를 만들기를 진행할려고합니다. 우선 기본적인 boiler-plate 코드가 필요하기 때문에 아래의 boilter-plate 코드를 다운받아 주세요(블로그 내에 boilter-plate에 관한 강의도 있습니다. - 참고로 John-Ahn님의 boiler-plate코드입니다.) https://github.com/jaewonhimnae/boilerplate-mern-stack jaewonhimnae/boilerplate-mern-stack Boilerplate when you use REACT JS, MONG DB, EXPRESS JS, REDUX - jaewonhimnae/boilerplate-mern-stack github.com *혹여나 boiler..

객체지향이 필요한 이유 *위의 코드는 Person이라는 함수에 사람의 정보를 넣을때 introduce라는 함수를 중복으로 넣어야 한다는 점이 코드의 중복을 불러와 문제를 일으킴 객체지향의 사용 *Person이라는 함수를 만들어 놓고 new라는 생성자를 통해 객체를 생성한다. 그러나 Person함수내부의 원소에 this. 이라는 키워드가 앞에 붙지 않을 경우 객체를 생성할지 라도 그내부의 원소에 접근할 수가 없다. 예를들어 Person함수에 this.name이아닌 name = name; 이라고 되어있을경우 var p1 = new Person('egoing') 으로 객체를 생성 할지라도 변수 p1은 내부 name에 접근할 수없다. (p1.name = undefined) *단, 3번째 에서 볼 수있듯이 new..

apply함수의 기본 *인자를 2개 받는다. 첫번째 인자는 해당함수안의 this를 무엇으로 치환할꺼냐를 말하는것이고 2번째 인자는 해당함수의 매개변수를 배열로 받는다. apply함수의 사용이유 *sum함수에서 this를 사용하기위해서는 sum함수에 객체나 배열을 집어넣을 필요가있다. 그러나 위의 코드에서 보듯이 o1이라는 객체에 val1,val2,val3을 집어넣기위해 sum이라는 함수도 같이 o1의 객체의 원소에 넣어버리면 for in문은 객체의 모든 원소를 뽑아내기때문에 sum함수까지 _sum이라는값에 대입이 된것을 볼 수있다. 그렇다면 간단하게 객체나 배열을 인자로 전달하여 this를 대체하고싶을땐 무엇을 사용하면될까? 위의 코드에서 해결책을 제시해준다. apply함수를 사용하면 되는데 apply함..

arguments함수란? * arguments 객체는 유사배열이라고도 하며 인자로 전달되는 값에 대한 접근이 필요할때 사용한다. arguments.length로 인자의 개수를 확인할 수있으며 arguments[number]로 각각의 인자의 값에 접근도 가능하다. 인자로전달되는 값에대한 접근 과 매개변수에 대한 접근 *함수이름.length 하면 매개변수의 개수를 구할 수 있으며 , arguments.length하면 전달하는인자의 개수를 구할 수 있다. 이는 실제로 코딩할 때 매개변수의 개수와 전달하는 인자의 개수가 다르다면 오류를 발생시키도록 유도할 수 있으며 자바스크립트는 조금 관대한 언어이기때문에 이런식을 활용하여 오류를 잡아 줄 수있다.

클로저의 기본 *클로저: 간단히 말해서 어떤 함수의 내부 함수를 뜻한다. * outter()함수에만 사용할 필요가 있는 메서드가 있을 경우 내부함수로 만들 필요가 있다.(그것을 동등한 위치의 외부함수로 만들경우 코드의 시각성이 떨어짐) 이때 내부함수에서 외부함수의 지역변수에 접근이가능한데 이것이 클로저함수의 특성이다. 클로저 함수의 독특성 * 외부함수(outter)가 inner라는 변수에 값을 반환하고 소멸하였는데도 ouuter의 내부함수 즉 클로저함수는 그 환경을 기억한다. title에는 'codding everybody'가 대입이 되어서 기억이된 상태를 말한다. 다시 설명하자면, 위의 코드를 보면 inner라는 변수에 outter함수의 반환값을 대입하여 inner에는 function() { alert..

값(value) 로써 함수를 사용 *자바스크립트에서는 함수도 객체이기 때문에 값으로 사용이 가능하며 이 함수가 객체내부의 값으로 사용되었을 경우 메서드라고 부른다. 객체와 배열 의 원소로 함수를 사용 * 배열 값으로 함수를 쓸 때는 함수의 이름을 지정하지 않는게 편하며 지정하게 되더라도 배열의 원소에 접근 할때는 위와 같이 process[i] 와같이만 접근이 가능하다. 콜백함수 사용 *콜백함수:간단히 다른함수의 인자로 함수를 사용하는것을 말한다. 위의 코드에서는 배열의 내부메서드 sort라는 함수의 인자로 함수 sortfunc를 사용하였다.(sort메서드의 동작방식을 커스터마이징하였음.)

*참고로 ES6에서는 var대신에 const,let을 사용합니다. var는 es6에서는 더이상 쓰이지 않습니다. 전역변수와 지역변수의 차이 *함수밖에서 선언한 var 변수는 전역변수라고 보면되고 함수내부에서 선언한 var변수는 지역변수이다. 참고로 다른 언어와달리 var는 선언된 함수내에서 유효범위를 가진다. *var 은 변수의 선언에 사용된다. var를 생략할시 이미 선언되어 있는 변수를 값을 참조하는데 지역변수내에 해당 변수가있을경우 지역변수의 값을 참조하고 지역변수가 없을경우 전역변수의 값을 참조한다. 변수를 선언하지 않고 참조할때 발생할 수있는문제 *a함수내에서 var 로 변수선언을 하지않을 경우 a함수에서 i는 전역변수 i를 가리키게된다. 그러나 a가 for문 내부로 들어가게 될경우 가장가까운 ..

정규표현식의 내부메서드 * 정규 표현식의 선언 방식은 2가지가 존재하는데 문자양끝에 / / 로 감싸주는 방식이 하나 있고 new RegExp('문자') 로 생성자를 이용하는 방식이 있다. (a. 은 a뒤에 아무문자를 뜻한다.) *정규표현식 내부 메서드에는 2가지가 존재하는데 하나는 .exec('문자') 과 나머지 하나는 .test('문자') 이다. 전자는 인자의 문자중에 미리 선언한 정규표현식에 해당되는 문자를 반환한다. (출력결과에서 a , ab) 후자는 인자로 전달한 문자중에 미리 선언한 정규표현식에 해당되는 문자가 있을시 true 없을시 false를 반환한다. (출력결과에서 true,false) 문자열의 내부메서드 *문자열 내부 메서드로 정규표현식에 해당하는 기능을 이용할 수 있는데 .match(정..