본문 바로가기

javascript54

JavaScript - e.preventDefault() 와 e.stopPropagation() 의 차이점 특정 이벤트를 막고 다른 동작을 실행해야 하는 상황이 있다. 아래와 같이 안의 를 클릭하면, onClick 이벤트가 실행되야 하지만 현실은 다르다. href 를 통해 링크로 이동한다. console.log('클릭'}/> 그 이유는 이벤트 버블링 때문이다. 자식 → 부모 순으로 이벤트가 실행이 된다. 자식(온클릭) 이벤트 후, 부모(링크 이동) 이벤트까지 순서대로 실행되는 것이다 이럴 때 우리는 e.preventDefault()와 e.stopPropagation() 를 사용해서 부모까지의 흐름을 끊어주어 해결하였다. 그 시점에서 정확히 그 둘의 차이가 무엇인지 궁금해졌다. 실제 버블링 이슈를 어떻게 해결했는지 궁금하시다면 ... ? (아래 포스팅 클릭 ↓↓↓) React(55) 겹친 영역에서 자식 이벤트만.. 2022. 12. 26.
JavaScript - 정규식 전화번호 입력시 하이픈(-) 추가하기 하이픈 (-) 없이 전화번호를 숫자만으로 입력했을때, 하이픈(-) 을 자동으로 추가해주는 정규식을 알아보자 아래와 같이 숫자로만 입력하면 → 하이픈이 붙어서 리턴된다. 정규식을 이용해보았다. const phone = 01012340000; phone .replace(/ /g, '') // 공백이 들어있다면 지워주고 .replace(/^(\d{2,3})(\d{3,4})(\d{4})$/, `$1-$2-$3`); // 숫자그룹을 나눠 사이에 하이픈(-)추가 // 결과 010-1234-0000 관련 개념 포스팅 정규식을 자세히 파보기 위해 관련 개념을 정리한 포스팅이다. JavaScript - 정규식 Regular expression updated 07/30/22 오늘은 정규식의 날이었다 정규식이 나를 애먹였지.. 2022. 12. 2.
JavaScript - 문자열인 숫자 여부 확인하기 타입은 String 인데 무늬만 숫자인 경우가 있다. '153' 이런 경우가 그렇다. 숫자인 척 위장한 스트링 녀석들의 값이 숫자인지 확인해주는 내장 메소드를 알아보자. (실제로 적용해본 코드 중심으로 하나씩 업데이트해나갈 예정) isNaN() console.log('aaa', isNaN('aaa' as any)); // true console.log('132', isNaN('13579' as any)); // false console.log('1,399', isNaN('1,399' as any)); // true ** BUT 여기서 '1,234' 세자리 콤마로 분리되는 숫자값이 들어가게 되면 isNaN('1,234' as any)는 string 으로 취급한다. 2022. 11. 26.
JavaScript - scrollIntoView() 이란 화면 바깥으로 삐져나가 스크롤해야만 볼수있는 메뉴 탭이 있다. 살짝 화면을 삐져나간 메뉴를 클릭하면, 메뉴탭은 삐져나간 그자리 그대로 있고, 내용만 바뀐다. 뭔가 이상하지 않은가? 보통은 메뉴을 누르면 자동으로 스르륵 화면 중간쯤 알아서 스크롤되는 동작에 익숙하지 않은가? 그 기능을 위해 javaScript 내장메서드인 scrollIntoView() 를 알아보자 JavaScript - scrollIntoView() 이란 이 메소드는 scrollIntoView()가 호출된 엘레멘트를 유저가 볼수있는 부분으로 상위 컨테이너를 스크롤 한다 The Element interface's scrollIntoView() method scrolls the element's ancestor containers such t.. 2022. 11. 8.
JavaScript - 최소공배수 구하기 최소공배수를 구하기 위해 대표적인 두가지 방법이 있다. 쉽게 구하기위해서는 최대공약수를 먼저 구해야 한다. 먼저, 최대공약수를 구해보자. 아래 포스팅 참고 ↓ ↓ ↓ JavaScript - 최대공약수 구하기 (유클리드 호제법) 예전에 수학시간에 최대공약수 / 최소공배수 구하는 것은 누워서 껌먹기 였다. 학원에서 가르쳐준 대로 계산하면 답이 나왔기 때문이다. 당연히 연필들고 공책에 푸는 소인수분해의 관점에서 devbirdfeet.tistory.com JavaScript - 최소공배수 구하기 여기서는 최대공약수를 먼저 구했다고 가정하겠다. - 최소공배수 두 수의 공통된 배수 중에서 가장 작은 수 5의 배수 5, 10, 15, 20, 25, 30, 35, 40 ... 6의 배수 6, 12, 18, 24, 30.. 2022. 11. 3.
JavaScript - 최대공약수 구하기 (유클리드 호제법) 예전에 수학시간에 최대공약수 / 최소공배수 구하는 것은 누워서 껌먹기 였다. 학원에서 가르쳐준 대로 계산하면 답이 나왔기 때문이다. 당연히 연필들고 공책에 푸는 소인수분해의 관점에서 접근하면 머리로 이해하기는 쉬운일이지만 혹시모를 거대한 수를 다룰 가능성이 있는 IT인의 관점에서는 알고리즘을 사용하여 푸는 편이 효율적이다. 그리하여 유클리드 호제법이라는 알고리즘과 최대공약수를 구하는 법을 알고자 한다. JavaScript - 최대공약수 구하기 (유클리드 호제법) - 최대공약수 두 수의 공통된 약수 중에서 가장 큰 수 4의 약수 1, 2, 4 16의 약수 1, 2, 4, 8, 16 → 4와 16의 최대공약수는 4이다 - 유클리드 호제법 유클리드(Euclid)에 의해 기원전 300년경에 발견된 가장 오래된 .. 2022. 11. 1.
JavaScript - 약수 구하기 약수는 어떤수를 나누면 나머지 없이 딱 떨어지는 수이다. 예를 들어 4 / 2 = 2 ... 0 이므로 2는 4의 약수이다. 4 / 3 = 1 ... 1 이므로 3은 4의 약수가 아니다. javaScript 에서 약수인지 확인하기 위해서는, number % index === 0 의 조건에 부합해야 한다. (나머지가 0 이여야 하는 약수이기 때문이다.) 아래의 약수의 갯수를 구하는 함수이다. function getDivisorCount (num){ let count = 0; // 갯수 구할 값 초기화 for(let j=0; j < num + 1; j++){ // num 숫자만큼 반복문을 돌려주자 if(num % j === 0) { console.log(j); // 이 j index 가 num 의 약수가 된.. 2022. 10. 22.
JavaScript - 두 배열 비교해서 특정 값 찾기(splice, filter, includes) all 는 [ 0 - 9 까지의 숫자배열 ] 이고, part는 그 중 [ 몇몇 숫자만 들어있는 배열 ] 이다. 원래는 all 의 모든 숫자들을 가지고 있어야 되는데, 몇몇 녀석들이 도망가서 part 만 남았다. 도망간 녀석들이 (차집합) 누군지 찾고자 한다. 즉, 두배열을 비교해서 특정값을 찾아보려고 한다. 나는 두가지 풀이방식으로 풀어보았다. 아래에 필요한 배열들을 보자. [ 5랑 9 ] 가 집나갔으니 얘네만으로 이루어진 배열을 구할 것이다. // 0 - 9 까지의 숫자중 5, 9 가 없다. // [5,9] let all = [1,2,3,4,5,6,7,8,9,0]; let part = [1,2,3,4,6,7,8,0]; 1. 2중 포문과 splice를 이용한다. 2중 포문으로 검사한 뒤, all 값과 =.. 2022. 10. 18.
JavaScript 알고리즘 (12) Naive Search 잊을만하면 계속 돌아오는 알고리즘 포스팅 ✌ 오늘 배워본 알고리즘은 pattern searching 알고리즘 중 하나인 Naive Search (문자열 검색 알고리즘) 이다. 패턴 검색 알고리즘은 문장에서 원하는 문자열을 찾는 알고리즘을 말한다. 전체문자열에서 문자 하나하나 비교해가면서 원하는 단어가 맞는지 확인하는 것이 핵심이다. Pattern Searching algorithm is string matching algorithm which is used to find a pattern or a substring in another string. function naiveSearch(long, short){ var count = 0; // 갯수 초기값 세팅 for(var i = 0; i < long.l.. 2022. 10. 10.
반응형