목록JavaScript (15)
oris9
코딩테스트 문제를 풀다가 기본적인 건 알고 있지만 자세한 동작방식이나, 성능상에서 서로 다른 점에 대해 깊게 알고있는 것 같지 않아서 정리해보려고합니다 🤩🤩🤩 1. for문for (let i = 0; i 인덱스를 명시적으로 제어할 수 있어서 시작, 종료, 증감값을 컨트롤 해야할 때 사용하면 좋습니다.continue와 break 같은 제어문을 사용할 수 있습니다. (forEach는 사용불가!)forEach에 비해 조금 더 성능상에 이점이 있고(조금더 빠름, `for (let i = 0; i 보다 유연하기 때문에 복잡한 로직의 경우 적합합니다(상태복원, 재귀호출) 2. for...of 문for (let el of array) { // 배열의 각 요소에 접근}배열의 각 !! 요소 !! 에 접근..
컨벤션을 지키면서 코드를 짜자!!!!!!!!!!!!!!! 코드리뷰에서 C언어의 나쁜 습관이 보인다고 하셨다 아무래도 코딩테스트 공부하면서 다른 분들의 풀이를 참고하다보니 그런 습관이 베인 것 같다 왜냐면 난 씨언어 모르니깐!! 모르는.거. 한가득 🥵🥵🥵🥵🥵🤢 지킬거. 한가득 ㅎㅎ 🤩 빠이팅 ! 읽는 사람이 읽기 편하게 유지보수하기 편하게 작성하자 아자자 (원어)https://github.com/airbnb/javascript?tab=readme-ov-file (한국어)https://github.com/ParkSB/javascript-style-guide 4.6Array.from 반복 가능한 매핑에 스프레드 대신 사용하세요 .... 중간 배열 생성을 방지하기 때문입니다. // bad const baz = ..
🌐 이벤트 버블링과 캡쳐링 자바스크립트에서 이벤트는 DOM 트리를 따라 위아래로 퍼져나가게 된다. 2번째 그림과 같이 DOM이 팬케이크처럼 겹쳐져있다고 생각하면 이해가 편한데, 가장 아래의 div2를 누르면 그 위에 있는 html, body, div1까지 모두 눌리게 되는 것이다. 누르면서 위에서부터 하나씩 다 눌리게되고, div2에서 누른게 떨어지면 그대로 아래부터 한 번 더 요소들을 건드리게되면서 버블링이 일어난다.. 고 이해하면 편할 것 같다. 이벤트가 상위요소에서 하위요소로 전파되는 것을 `캡쳐링`, 반대로 하위요소에서 상위요소로 전파되는 것을 `버블링`이라고 한다 자바스크립트에서 기본적으로 `캡쳐링`단계가 일어난 뒤 `타겟에 등록된 이벤트`가 일어나고, `버블링`이 일어나게 된다. (그림2) !..
자바스크립트에는 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)라는 개념이 있다. 또 7가지 원시타입과 참조타입이 존재한다. 깊은 복사(Deep Copy) 자바스크립트에서 값을 할당하는 방식으로 값을 복사하려고할때, 원시타입은 할당 당시 캡쳐된 값을 그대로 할당해준다. 즉 우리가 원하는대로 복사가 가능하다. 이를 `깊은 복사(Deep Copy)`라고 한다 얕은 복사(Shallow Copy) 그런데 참조타입의 경우 모두 일종의 객체라고 볼 수 있는데, 이들은 값을 가지고 있는게 아니라 값을 담고있는 메모리 주소를 가지고 있다. 그렇기 때문에 위와 같은 방법으로 복사를 하려고하면, 메모리주소가 복사되게된다. 그렇게되면 한 메모리주소에 연결된 변수가 여러개 생기는 것이고 그 중 한 변수에서..
세가지 모두 변수를 선언하는 키워드이다. `var`는 초기부터 사용된 변수 선언 키워드이고, `let`과 `const`는 ES6이후 도입되었다. 즉 var의 어떤 문제점에 개선 필요성을 느끼고 추가된 변수 선언 키워드인 것이다 🤨 키워드 var var의 어떤 특징이 문제였을까? 첫번째로 `var`는 재선언, 재할당이 가능하다. 언제 같은 이름으로 다시 선언하든, 다른 값을 새롭게 할당하든 계속해서 오류 없이 동작한다. 이 말은, 코드가 복잡해졌을 때 위에서 쓴 변수이름을 앗! 깜박하고 다시 쓰더라도 자바스크립트는 아무런 이상을 느끼지 못하고 코드를 계속 실행한다는 뜻이다. 이렇게 되면 나, 또는 남이 코드를 수정하기 너무 쉬워진다. 변수는 최대한 밖에서 건드리지 못하는 것이 좋은데 밖에서 건드리기 너무 ..
Ecma International이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어를 말한다. 자바스크립트를 표준화하기 위해 만들어졌다. 액션스크립트와 J스크립트 등 다른 구현체도 포함하고 있다.[2] ECMA스크립트는 웹의 클라이언트 사이드 스크립트로 많이 사용되며 Node.js를 사용한 서버 응용 프로그램 및 서비스에도 점차 많이 쓰이고 있다. 1996년 3월, 넷스케이프에서 넷스케이프 네비게이터 2.0을 출시하면서 자바스크립트를 지원하기 시작했다. 웹 페이지 동작을 향상시키는 언어로서 자바스크립트의 성공은, 마이크로소프트가 이와 "적당히" 호환되는 J스크립트를 개발하는 계기가 되었다. J스크립트는 1996년 8월, 인터넷 익스플로러 3.0에 포함되어 출시되었다. 넷..
제너레이터(generator) 함수란, 단어 자체를 번역하면 생성, 발생시키는 것을 의미한다. `function*` 키워드를 사용해 생성할 수 있다. 원하는 부분에서 중간에 멈췄다가, 그 부분에서 다시 재개할 수 있는 함수이다. 가장 큰 소수 찾기, 미로통과하기 같은 수학적 문제에 사용할 수 있으며, 계산을 더 작은 단위로 분할해, 병렬 또는 한번에 실행할 수 있으므로 머신러닝 알고리즘 풀이시 대량의 데이터를 처리하는 상황에서 유용한 것이다. 기본적으로 일반 함수는 하나의 값만을 반환하지만 제너레이터 함수는 호출되면 `제너레이터 객체`라는 이터러블 객체를 생성하며, 여러 개의 값을 필요에 따라 하나씩 `반환(yield)`할 수 있다. 제너레이터 객체 메서드 next() : next()를 호출하면 가장 가..
정규표현식(RegExp, regular expression)이란 사전적인 의미로는 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어라고 한다. 문자열에서 특정 내용을 찾거나 대체 또는 발췌하는데 사용한다. 구현하기가 마냥 쉽지는 않고, 짧게 표현되어 함축된 의미를 가지고 있어 가독성이 좋지 않다는 단점이 있지만, 그러나 사용자의 전화번호 검색, 패스워드 사용 등록과 같은 문자열에서 특정한 조건을 표현해야되는 경우에 일반적인 반복문, 조건문을 사용할 때보다 정규표현식을 사용하여 매우 간단하게 특정 조건들을 표시하고, 빠르고 효율적인 기능 수행을 하도록 만들 수 있다. 정규표현식 작성법 a. 정규 표현식 리터럴 `const re = /ab+c/i;` 다음과 같이 슬래시로 감싸서 `/검색할 ..