자바스크립트
var, let, const 각각의 차이점
var, let, const 각각의 차이점
2020.10.18[JavaScript] var, let, const 각각의 차이점 자바스크립트에서 변수를 선언할 때 사용하는 var let const 각각의 차이점은 무엇일까요? 차이점 가장 큰 차이는 var의 경우 function-scoped let과 const는 block-scoped라는 것입니다. 스코프에 대해 설명하기 전, var가 갖고 있는 문제에 대해 먼저 알아보겠습니다. 변수 선언 방식 우선, var의 경우 변수 선언에 있어서 혼란을 야기할 수 있는 부분이 존재합니다. var age = 10; console.log(age); // 10 var age = 20; console.log(age); // 20위 코드에서 같은 이름의 변수를 한 번 더 선언했음에도 에러가 발생하지 않고 정상적으로 출력되는 것을 확인할..
Math.random()은 정말 랜덤일까?
Math.random()은 정말 랜덤일까?
2020.10.17[JavaScript] Math.random()은 정말 랜덤일까? TL; DR; 자바스크립트는 어떻게 Math.random 함수에서 난수를 생성하는가? JS는 아무것도 하지 않는다. 브라우저에 따라 달라진다. 현재 대부분의 브라우저는 xorshift128+ 라는 알고리즘을 사용한다. xorshift128+에 의해 생성된 숫자는 난수를 생성하는 것이 아닌, 특정 값에 공식을 대입한 수학식이다. Math.random() Math.random() 은 0 이상 1미만의 부동 소숫점 난수를 생성하는 함수이며, 이 점을 이용해 아래와 같이 사용해 랜덤한 값을 만들 수 있습니다. 0 Math.random() * (max - min) + min; 두 값 사이의 (정수)난수 생성 getRandom = (min, max)..
ContextAPI 렌더링 이슈
ContextAPI 렌더링 이슈
2020.10.17[React] ContextAPI 렌더링 이슈 ContextAPI는 규모가 작은 앱을 개발할 때 매우 편리합니다. 하지만, Context 값이 변경될 때, useContext가 렌더링을 유도하기 때문에 앱의 규모가 커진다면 일부 성능 문제가 발생할 수 있습니다. '아니 어떻게 React에서 제공하는 기본 기능에서 문제가 발생할 수 있냐??'라고 생각할 수도 있습니다. 지금부터 어떤 문제가 발생하는지와 함께 해당 문제를 해결하는 방법에 대해 알아봅시다. ContextAPI 앱 구성 및 문제 확인 문제를 확인할 수 있는 CodeSnadbox 간단한 객체 값을 갖고 있는 Context 구성입니다. useReducer를 이용해 Provider에 값을 전달하고 있으며, useContextr를 이용해..