본문 바로가기

개발/자바스크립트 35

[자바스크립트] 파라미터를 건드려보자. currying 에 대하여 커링 (Currying) 은 프로그래밍 중급 기술이다. 나도 아직 현업에서 제대로 구현해서 "와 너무 편하다, 좋다"라고 느낀 적은 없다. 하지만 쓸 수 있는 상황이 언젠가 오지 않을까 라는 생각만 가지고 배웠다. Currying 은 1967년 Christopher Strachey 가 Haskell Brooks Curry의 이름에서 착안한 것이다. Currying은 여러 개의 인자를 가진 함수를 호출할 경우, 파라미터의 수보다 적은 수의 파라미터를 인자로 받으면 누락된 파라미터를 인자로 받는 기법이다. 또한 커링이라는 개념은 자바스크립트뿐 만 아니라 다른 언어에도 있다. 단지 구현 로직만 다를 뿐이다. 기술적으로 커링은 f(a, b, c)처럼 단일 호출로 처리하는 함수를 f(a)(b)(c)와 같이 각각의.. 2021. 2. 22.
[자바스크립트] 객체를 복사하는 다양한 방법에 대하여 자바스크립트의 객체의 복사는 크게 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)로 나눠진다. 다음 예를 보자 let stock = { name : "apple" }; let myStock = stock; console.log(stock.name) // apple console.log(myStock.name) // apple console.log(stock.name == myStock.name) // true console.log(stock.name === myStock.name) //true 우리가 흔히 알고 있듯이, 객체의 변수가 다른 변수에 할당되어 Call by reference (참조) 가 일어났고 한 데이터를 변경하면 같은 참조를 가진 값도 변한다. let stock = {.. 2021. 2. 22.
[자바스크립트] primitive, 그 중에서도 null 에 대하여 null 은 자바스크립트의 원시값(primitive) 중 하나로, 어떤 값이 의도적으로 비어있음을 표현하여 boolean 연산에서는 false 로 취급하는 값입니다. null 에 대해 깊게 들어가기 전에 원시값(primitive)에 대해 간략히 설명하고 넘어가겠습니다. In JavaScript, a primitive (primitive value, primitive data type) is data that is not an object and has no methods. There are 7 primitive data types: string, number, bigint, boolean, undefined, symbol, and null. MDN 공식 사이트를 보면 자바스크립트에서는 7개의 원시값(pr.. 2021. 2. 17.
[자바스크립트] 객체에 조건부로 속성을 추가하는 방법에 대해 들어가며 가끔씩 조건에 따라 달라지는 객체가 필요할 때가 있습니다. If else로 하나씩 넣기 let obj = {} if(includeA) { obj = { a : 3, b : 3 } } else { obj = { b : 3 } } 코드 그대로 includeA가 true 이면 {a : 3} 이 포함되고 아니면 없는 경우인데요. 위의 예시처럼 if else로 조건을 추가할 경우에, 조건이 들어날수록 if else이 2배씩 늘어난다는 치명적인 단점이 있습니다. 삼항연산자로 넣어주기 그래서 일반적으로 아래와 같이 삼항연산자를 이용해 각 조건별로 값을 넣어주는 방식을 사용하기도 합니다. let includeA = true; let includeB = false; let obj = { a : includeA .. 2021. 2. 15.