Language/JavaScript 6

호이스팅

핵심키워드 : 호이스팅, 스코프 , 변수의 선언, 메모리 할당, 변수 초기화 본 포스트에서는 스코프의 개념보다 호이스팅이라는 기능 자체에 초점을 다뤄서 이야기 해볼까 한다. 변수의 선언, 메모리할당, 변수의 초기화의 개념이 없다면 글을 이해하는게 힘들 수 있음으로 공부 후 읽기를 권장한다. 호이스팅이란? MDN공식문서에 적혀진 내용은 다음과 같다. JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화합니다. 반면 let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않습니다. 즉, var은 변수객체에 변수를 등록하는 동시에 un..

Language/JavaScript 2022.12.17

JS / == 과 ===차이

▶참조형 변수같은 경우는 비교연산을 수행시 무조건 참조값을 비교하게 됩니다. [] == [] // false [] === [] //false 다음과 같은 결과가 나오는 이유는 두 배열의 참조 값이 다르기 때문에 두 배열의 생긴 모습이 같다고 하더라도 항상 False가 나오게 됩니다. ▶ == ==연산은 자료형이 다를 경우 자동으로 타입을 같게만들어준 뒤 비교합니다. ex) 1 == '1' // 결과값 : true ▶ === === 연산은 엄격한 비교입니다. 따라서 형변환 없이 비교하여 같으면 true 다르면 false를 리턴합니다. ex) 1 === '1' //fasle

Language/JavaScript 2022.12.04

Js의 깊은 복사 얕은 복사

1. const answer = Array(n).fill(Array(m).fill(0)) //얕은복사 2. const answer = Array(n).fill().map(()=>(Array(m).fill(0))) //깊은 복사 행열이 n,m이고 0으로 찬 2차원 배열이 나오는데 1번은 Array(m).fill(0)의 참조변수 3개가 복사된 형태이고 2번은 각각의 행마다 배열이 생성 된 것이다.(1번은 하나의 숫자를 바꾸면 전체 행이 변경되게 된다.즉, 각 행에 존재하는 배열이 다 서로 같은 주소를 가지고 있다.) 아직 js에 익숙하지 않아서 쉬운 실수를 반복하는 하게 된다.

Language/JavaScript 2022.11.26

JS정규표현식

● 파이썬 정규표현식과 문자열을 찾기위한 표현은 같다. 다만 사용법이 조금달라서 거기에대해서 적어보겠다. ● 문자열.match 메소드와 // 표현과 함께 사용한다. ● 예제) 문자열에서 1이 몇개있는지 찾는 예시 let string = '12312312313' string.match(/1/g).length ● 주석사이에 문자열을 넣으면 찾는 문자열을 검색할 수 있다. ex) /1/ => 1을 찾고싶은경우 ● flag패턴 -> 생략가능하지만 쓰면 편하게 쓸 수 있는기능들이 있다. /g => 일치하는 모든것들을 찾아 배열을리턴해준다. /i => 대소문자 구분을 무시한다. 한번에쓰려면 /gi 이런식으로 표현할 수 있다. 이외에도 여러패턴들이 존재함. ● 원하지 않는 문자열 제외를 위한 기호 ^ ☞정상적인 해시..

Language/JavaScript 2022.11.14

PS시 유용한 JS메소드

1. 배열에 값 넣고 빼기 ●뺴기 Array.pop() -> 마지막 값 빼기 Array.shift() - > 시작값 빼기 ●넣기 Array.push(v) -> Array의 끝에 v넣기 Array.unshift(v) -> Array의 시작에 v넣기 2. 배열 값 조작 - splice ● 매개변수 1개 의미->Array.splice(-1) or Array.splice(3) 시작위치 (음수이면 Array.length + 값 과 같다.) 해당 인덱스부터 배열의 끝까지 잘라내고 잘라낸 부분을 리턴한다. // 이때 Array.length 보다 값이크면 빈배열을 리턴하고 아무것도 자르지않는다. (-일때 절대값이 Array.length보다 크거나 같으면 배열전체를 잘라낸다. ) ●매개변수 2개 의미 -> Array.s..

Language/JavaScript 2022.11.08

PS시 유용한 JS문법

1. range() : 파이썬에서 유용하다고 생각했던 range를 다음과 같이 작성하면 비슷하게 사용할 수 있다. const range = n => [...Array(n).keys()] const range = (n,m) =>[...Array(m).keys()].slice(n) # range(1,10) 처럼사용가능 n이 3일경우 [0,1,2]를 리턴한다. 2. for in(키), for of(값) ● for in (key값에 접근) for (i in Obj) {} -> 이런식으로 in을쓰면 key값에다가 문자열을 치환하여 i에 들어온다.(따라서 obj에 배열이 들어가면 배열에서는 key가 숫자임으로 '0', '1' ... 이런순서로 나오게된다. ) ● for of (순서대로 value 값에 접근) Arr..

Language/JavaScript 2022.11.07