JavaScript 28

javaScript의 this | 상황별 어디에 바인딩 될까?

1. javaScript에서 this는 다른 언어의 개념과 조금 다르다. java에서의 this는 인스턴스자신을 가리키지만, js의 this는 객체를 가리키는 키워드이다. js의 this는 함수를 호출한 방법에 의해 결정된다. 간단하게 this앞에 호출한 객체에 따라 결정이 되는것이다. 2. this바인딩은 함수 호출 방식에 의해 동적으로 결정된다. 1 ) 전역에서의 this는 window 객체 console.log(this) console.log(this===window); 2 ) 함수내부에서 this는 window를 가리킨다. function test() { console.log(this); } test(); //window 3. this를 지정해주고싶을때 bind()를 사용 | bind는 함수에 한..

Frontend/JavaScript 2023.03.31

Sliding window | 슬라이딩 윈도우 알고리즘

1. 슬라이딩 윈도우 알고리즘이란? 윈도우(특정범위)가 있을때 배열이나 내부 요소의 값을 윈도우로 이동하며 해결하는 알고리즘이다 1. 위의 파란색 범위를 윈도우라고 한다. 2. 윈도우를 이동을 하며 배열을 탐색한다. 2. 배열에서 연속하는 요소들을 연산하려고 할때 쉽게 중첩된 for loop를 이용해서 구하기 쉬운데 O(n^2)을 가지게 되어 효율성에서 많이 문제가 생긴다. 3. 이럴때 슬라이딩 윈도우 알고리즘을 이용한다 배열이나 문자열같은 선형구조에서 일정범위값이 있을때 // 예 ) 배열이 있을때 배열에서 연속하는 5개 요소의 합중 최대값을 리턴한다. // [1, 3, 2, 9, 0, 1, 2, 5, 7, 8, 3] 연속하는 5개의 요소를 이동하며 합을 구하게 된다. [1, 3, 2, 9, 0, 1, ..

두 배열간의 교집합, 차집합, 합집합, 대칭차집합

const A = [1,2,3,4,5] const B = [2,3] // 교집합 console.log(A.filter((item)=>B.includes(item))) // 차집합 console.log(A.filter((item)=>!B.includes(item))) // 합집합 console.log(A.concat(B)) console.log([...A,...B]) // 교집합을 제외한 합집합 : 대칭 차집합 console.log(A.filter((item)=>!B.includes(item)).concat(B.filter((item)=>!A.includes(item)))) 1. 교집합은 Includes로 찾아준다. 2. 차집합은 반대로 배열 앞에 ! 를 붙여주면 된다 3. 대칭차집합은 각각의 차집합들을 ..

Frontend/JavaScript 2023.02.06

charAt(), charCodeAt(), fromCharCode()

1. CharAt() : 해당 문자열에서 index에 위치한 문자를 리턴한다. const test = "hello" const index = 4; console.log(test.charAt(index)); // "o" 2. charCodeAt() : 해당 문자열의 유니코드를 리턴한다. const test = "hello" const index = 4; console.log(test.charCodeAt(index)); // 111 3. fromCharCode() : 문자열에서 사용하며, 유니코드를 문자열로 리턴해준다. console.log(String.fromCharCode(111)); // "o" console.log(String.fromCharCode(65,66,67)); //"ABC"

Frontend/JavaScript 2023.02.06

javaScript에서 object로 구성된 배열을 비교할때

Array of objects 2개를 비교하려고 할때 이렇게 하면 된다.. 난 삽질을 했군아 const products = [ {ulid: 1, price : 1000, name : "a" }, {ulid: 2, price : 2000, name : "b" }, {ulid: 3, price : 3000, name : "c" }, {ulid: 4, price : 4000, name : "d" } ] const best = [ {ulid : 3 } ] const result = products.filter(({ ulid: value }) => best.some(({ ulid: value2 }) => value === value2) ); console.log(result); //[{ ulid:3, price:..

Frontend/JavaScript 2023.02.04

useInterval()을 알아보자

2023.02.02 - [Frontend/React] - React에서 setInterval() 과 useInterval()무엇을 써야할까 React에서 setInterval() 과 useInterval()무엇을 써야할까 setInterval()을 사용해서 자동으로 이미지가 넘어가는 carousel을 만들려고 했다^^... imgIndex를 하나씩 넘겨주고 마지막 인덱스라면 다시 0으로 보내는 간단한 기능이다. const autoSlide = () => { setImgIndex(im diary-of-lemon.tistory.com 위의 글 처럼 예상되로 동작하지 않는 상황이었다. useEffect에서 함수를 실행시켜주고, 실행이 끝날때마다 setInterval함수의 ID를 clear해줬다. setInte..

Frontend/React 2023.02.03