전체 글

전체 글

    [mdn, 드림코딩 외] 객체지향 (1) : 클래스(class)

    들어가기 앞서 : 생성자함수와 클래스의 차이점 https://sunshineyellow.tistory.com/18?category=1037372 [코딩앙마 외] 객체 리터럴과 객체 접근법, 그리고 생성자 함수 객체를 생성하는 방법에는 두 가지가 있다. 객체 리터럴 생성자 함수 단 하나의 객체만을 생성할 때는 직관적이고 간편한 객체 리터럴을 사용하고, 같은 객체를 대량생산할 때는 생성자함수를 sunshineyellow.tistory.com 위 글에서 객체와 생성자함수를 간단하게 공부했다. 그렇다면 생성자함수와 다른 클래스의 특이점은 무엇일까? 클래스는 new 연산자 없이는 호출이 불가능하다. 클래스는 extends(클래스의 상속)와 super(super클래스의 constructor과 method 호출)를 ..

    [드림코딩] IIFE (즉시 호출되는 함수 만들기)

    function sayHello(){ console.log('Hello'); } sayHello(); 즉시 호출되어야 하는 함수를 만들 경우 아래처럼 한번 더 호출해줘야 하는 번거로움이 있다. 이를 IIFE (Immediately Invoked Function Expression)을 통해 더 쉽게 호출할 수 있다. (function sayHello(){ console.log('Hello'); })(); 함수를 ()괄호로 감싸고 ();를 붙이면 된다.

    [드림코딩] 디버깅 팁 - named function, recursions

    * named function은 class와 object에 관한 개념정리 게시글에서 한번 더 언급한다. const printGood = function () { console.log('Good'); } 일반적인 이런 함수선언문에서, function 옆에 이름을 붙여주어 (named function) 디버깅할 때 함수 이름이 나와서 디버깅을 더 손쉽게 할 수 있다. const printGood = function print() { console.log('Good'); } 함수 안에서 함수를 부르는 recursions도 디버깅 시 활용할 수 있다. (반복되는 평균값을 계산하는 등의 경우에 사용) const printGood = function print() { console.log('Good'); print..

    [드림코딩 외] 콜백함수 (Callback function)

    콜백함수 (Callback function) 콜백함수는 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출하는 함수를 말한다. (특별한 선언법이나 다른 문법을 가진 함수가 아닌, 호출하는 방식에 따라 구분된 함수이다.) function whatCoder(codingTest, goodCode, badCode) { if(codingtest === 'Callback function') { goodCode(); } else { badCode(); } } const goodCode = function () { console.log('Great!') }; const badCode = function () { console.log('Do it again.') }; whatCoder(`I don't kn..

    [드림코딩] Early return, early exit?

    ~일 때 ~하는 함수를 작성할 때, 블럭 안에서 작성을 길게 하면 가독성이 떨어진다. BAD function moreStudy(coding) { if (coding.point > 10) { //long logic... (coding.point가 10 이상일 때만 진행되는 로직) } } 이런 경우에는 한개의 블럭 안에 if와 else를 번갈아 쓰는 것보다는, GOOD function moreStudy(coding) { if (coding.point

    [드림코딩, comp110 외] 매개변수 (parameters)와 나머지 매개변수(rest parameters)

    매개변수(Parameters) primitive parameters (value를 전달) object parameters (reference를 전달) function changeName(obj) { obj.name = 'coder'; } const noran = {name : 'noran'}; changeName(noran); console.log(noran); 나머지 매개변수(rest parameters) function printAll(...args) { for (let i = 0; i < arg.length; i++) { console.log(arg.[i]); } } printAll('noran','javascript','goodcoding'); 매개변수 앞에 ...를 붙이면 배열 형태로 전달된다...