본문 바로가기

분류 전체보기

Recursion 이해하기(Javascript) 번역 및 요약 Recursion is impractical 이 포스팅을 시작한 계기이다. 명확히 하자면, recursion은 큰 문제를 작고 동일한 문제들로 만드는데 효과적인 방법이다. 그렇기에, 코드의 가독성을 향상 시켜준다. 글을 읽기전 추천해줄 자료들 The stack data structure Javascript functions Variable scope and hoisting 본글의 목표 : 자바스크립트 recursion에 대한 깊은 이해, recursion이 사용되면 좋을 법한 사례들에 대한 이해, 기존의 코드를 recursion을 활용하여 새로 써보기 recursion의 좋은예시와 나쁜예시 알아보기 프로그래밍에서 recursion이란 무엇일까? recursion이란 function 그 자체가 반복적으로 ..
클린코드를 작성하는법 지속가능한 코드 혹은 소프트웨어 유지보수란 무엇일까? 개인적으로 기존 앱이나 시스템의 사용자경험 그리고 특징의 지키면서 소스 코드를 바꾸는 refactoring이라고 생각한다. (버그의 수정, 시스템이나 프로그램의 기존 부분의 re-design, 시스템의 최적화) maintenance의 사전적 의미는 현재부분을 유지하면서 실패나 쇠퇴를 막는것이라고 나와있다. 하지만 소프트웨어의 개발자로서 단순히 유지하는 것 보단 코드를 향상시키길 원한다. 소프트웨어의 유지보수의 황금률은 사용자경험과 기존의 특징을 유지하라는 것이다. 우리가 직접적으로 보이지 않는 백엔드에서 위에서 말한것들을 향상시킬 수 있는 기회가 있다. (코드의 가독성, 시스템의 확장성, 시스템의 성능향상) 클린코드를 작성함으로써 얻는 장점 클린코드는..
The Scope Chain function b(){ Execution Context console.log(myVar);myVar 1 (Reference to Outer Environment) > Global Execution Context } function a(){Execution Context var myVar = 2;myVar 2 (Reference to Outer Environment) > Global Execution Context b(); } var myVar = 1;Global Execution Context a();myVar 1 // 1 function b의 경우 myVar을 찾을 수 없어서 outer environment를 참조 b() > a() > Global Execution Context 이러한 것을 스코프 ..
누구나 한 번쯤은 띄워본 JavaScript 에러 TOP 10. https://blog.meeta.io/10
JavaScript Reduce 자세히 알아보기 reduce 메소드 사용해서 평균값 찾기 합계를 로깅하기 전에, 합계를 array의 길이값으로 나눈 뒤에 리턴한다. for-loop와 같이 index의 수만큼 reduce가 array를 반복하게 해준다. const euros = [29.76, 41.85, 46.5]; const average = euros.reduce((total, amount, index, array) => { total += amount; if(index === array.length-1){ return total/array.length; } else { return total; } }); average // 39.37 Map 그리고 Filter로써의 reductions 일반적으로 array안의 수만큼 반복할 것이고, 단일 값을 리턴..
array 반복을 효과적으로 하기 위한 9가지 방법 Array Declaration var array = []; var array2 = new Array(); Array Initialization 선언과 동시에 초기화(?) var array1 = ['First', 'Second', 'Third', 'Fourth']; var array2 = new Array('First'); 선언 이후에 초기화 array1 = ['First', 'Second', 'Third', 'Fourth']; array2 = new Array('First'); Javascript Array 반복 메소드들 1. Array.map() map을 사용하면, 각각의 array element들에 대하여 어떤 실행을 한 새로운 array element를 만들어 낸다. 원래의 array에는 변화가 ..
filter function 이해하기 filter 란? filter() 메소드는 원래의 array 에서 특정조건이 통과하는 모든 값들을 새로운 배열로 만들어낸다. let newArr = oldArr.filter(callback); newArr : return 되는 새로운 array oldArr : filter function이 실행되는 array callback : oldArr의 element들에 실행되는 function, true면 element를 모으고, false일 경우 버린다. - element : array의 현재 element - index : 처리되는 값의 현재 index - arr : 원래의 array Filter vs For Loop let arr = [1, 2, 3, 4, 5, 6]; let even = []; for(va..
에어팟 선 없는 이어폰이 세상과 연결된 선마저 없애고 있다
reduce function 이해하기 reduce 란? reduce()메소드는 array의 각 element에 함수를 적용하여 array를 단일값으로 reduce 하는데 사용된다. let result = arr.reduce(callback); let result = arr.reduce(callback, initValue); // option for initial value result : return 되는 단일 값 arr : reduce함수가 실행되는 array calllback : array안에 있는 각 element들에 실행되는 함수 (네가지 arguments) - accumulator : 함수의 모든 리턴값을 축적 - cur : 진행되는 현재 값 - index : 현재 진행하는 값의 index - arr : 원래의 array initV..
점표기법(Dot notation) vs 괄호표기법(Bracket Notation) 객체의 Properties의 접근법에는 위의 두가지가 있다. Dot Notation (읽기 쉽고 더 자주 사용) let obj = { cat: 'meow', dog: 'woof' }; let sound = obj.cat; // objectName.propertyName; console.log(sound); // meow 프로퍼티 식별자는 알파벳( _ & $ 포함)로 시작한다. 숫자로 시작할 수는 없다. Bracket Notation let obj = { cat: 'meow', dog: 'woof' }; let sound = obj.['cat']; // objectName["propertyName"] console.log(sound); // meow 프로퍼티 식별자는 문자열(String)을 갖는다. 어떤 ..