[ 자바스크립트(JavaScript) ] 이진탐색(binarySearch) 구현방법
📍 binarySearch(이진탐색) 정렬된 리스트에서 원하는 항목을 찾기에 효율적인 알고리즘이다. 이진 탐색을 가장 많이 사용하는 경우는 배열에서 어떤 항목을 찾아야 할 때인데, 예를 들어 1 ~ 100까지의 범위에서 37이란 수를 찾으려면 1부터 100까지 1씩 증가하며 순서대로 찾는 방법이 있지만, 탐색범위를 1/2씩 줄이면서 찾는 방법이 있다. 순서대로 찾을 때는 최악의 경우 100번을 찾아야 하지만 탐색범위를 반씩 줄여 찾아간다면 최대 7번 만에 원하는 값을 찾을 수 있다. 이진 탐색을 코드로 구현하는 방법은 다음과 같다. // while let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let target = 3; function binarySearch(arr, ta..
2021. 8. 8.
[ 자바스크립트(JavaScript) ] var, let, const 변수 차이점과 호이스팅(hoisting), TDZ(Temporal Dead Zone), 스코프
📍 var, let, const 변수 차이점과 호이스팅(hoisting) 일반적으로 var , let , const 라고 할 때의 기본적인 차이점은 대략적으로나마 알고 있을 것이다. (어렴풋이 작성한 나의 글) 간략하게 말하면 var 와 let 은 변수를 선언하고 변수를 할당한 이후에도 값을 변경할 수 있지만(정확히는 var 는 재선언 및 재할당이 가능하고, let 은 재선언은 불가능하지만 재할당은 가능하다.) const는 한번 할당한 값은 다시 바꿀 수 없다. 이렇게 var 변수의 뛰어난 유연성만큼 단점도 있는데,var 문법은 스코프의 범위(정확하게는 함수 스코프)가 넓어서 의도치 않은 버그의 발생원인이 될 수 있기 때문에 이를 해결하기 위해 ES6 문법에 let, const 문법이 추가되면서 var ..
2021. 7. 31.