Array.isArray 와 instanceof Array 지금까지 운이 좋게도.. typeof로만 연명해왔던 날들... 배열은 Array.isArray와 instanceof Array로 구분해야한다..^^.. Array.isArray console.log(Array.isArray([a,b,c]); // true instanceof Array const test = [1,2,3]; console.log(test instanceof Array) //true 이렇게 하면 된다...^^..~ Frontend/JavaScript 2023.04.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
순수함수란 ? 요즘 함수형프로그래밍이 너무 재밌어 보인다. 그래서 책도 샀는데 아직 읽진 않았다...ㅎ.. 함수형 프로그래밍에 대해 배우기전에 간단하게 순수함수를 알아보자! 순수함수는 외부상태를 참조, 변경하면 안된다. 동일한 인자라면 항상 동일한 결과값을 리턴해야한다. 사이드이펙트를 만들면 안된다. Frontend/JavaScript 2023.03.21
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, .. 알고리즘/알고리즘 2023.02.08
두 배열간의 교집합, 차집합, 합집합, 대칭차집합 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
정수인지 확인하고 싶을때 Number.isInteger(n) 을 사용하면 된다 ~~ :) https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger Number.isInteger() - JavaScript | MDN Number.isInteger() 메서드는 주어진 값이 정수인지 판별합니다. developer.mozilla.org Frontend/JavaScript 2023.02.06
문자열로 구성된 배열을 숫자타입으로 변경하기 const test = ["1","2","3","4"] const result = test.map(Number); console.log(result); //[1, 2, 3, 4] map(Number)라는 방법이 있었따니.. 나는 항상 test.map((item)=>+item); 요렇게 했다구~~~~😯 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