JavaScript

    [드림코딩] 디버깅 팁 - 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'); 매개변수 앞에 ...를 붙이면 배열 형태로 전달된다...

    [mdn] 기본값 매개변수

    개요 과거에 기본값 설정은 함수 내부에서 매개변수 값을 검사해 undefined인 경우 값을 할당하는 방식이었다. function multiply(a, b) { b = (typeof b !== 'undefined') ? b : 1 return a*b } 이제는 기본값 매개변수를 통해 간단히 default값을 줄 수 있다. function multiply(a, b = 1) { return a*b } 응용 1 기본값은 호출 시에 평가되어, 함수가 호출될 때마다 새로운 객체가 생성된다. function goodCoder(coding = coder()) { return coding } let numberOfTimesCalled = 0 function coder(){ numberOfTimesCalled += 1 ..

    [생활코딩, 드림코딩, 코딩앙마] 연산자(Operator)와 break, continue

    연산자(Operator) 리스트 ! (not 연산자) 부정 && (and 연산자) 좌/우 모두 참일때 참 || (or 연산자) 좌/우 중 하나라도 참일때 참 (* or 연산자가 다수일 때 마지막에 가장 복잡한 변수를 넣는다) == (동등 연산자) 좌/우 같다면 참 === (일치 연산자) 좌/우가 데이터형까지 정확하게 같다면 참 != 같지 않다 (==와 정반대) !== 같지 않다 (===와 정반대) > 좌>우라면 참 >= 좌>=우라면 참 += 오른쪽 피연산자의 값을 변수에 더한 결과를 다시 변수에 할당한다. 조건부 연산자 (Conditional operator) const name = 'Noran'; if (name === 'Noran') { console.log('Welcome, Noran!'); } e..