본문 바로가기

JavaScript14

split 으로 나눌때 공백이 두 개 이상일 경우 문자열의 앞 뒤로 공백이 여러개라면 trim() 을 쓰면 앞 뒤로 공백이 1개던 5개던 모두 사라진다 하지만 str = ' 사자 곰 호랑이 코알라 뱀 돼지 ' 라는 문자열을 공백을 제거하여 나누어서 배열에 담으려 할때 단순히 앞 뒤로 공백을 제거하자 하고 다음처럼 arr = str.trim().split(' '); // arr = [사자,곰,,호랑이,,,코알라,,,,,뱀,,,,,,,,,,,,,,,,,,돼지] error야 꺄악! 나누면 에러가 생긴다. 각 요소들 사이의 공백도 구분자로 인식하게 되어 공백을 요소로 인식해서 생기는 문제이다 이럴땐 요소간의 공백이 여러개여도 무시할 수 있도록 정규표현식을 사용하면 된다 아직 정규표현식을 배우진 않았지만 자주 쓰일것 같으니 일단 외워서 쓰며 익숙해지자 사용법은 .. 2022. 8. 12.
[JS] for in , for of 차이 c++ 의 경우 배열을 순회하며 모든 요소에 for문을 적용시키기 위해서 아래와 같은 방식을 사용하였다 for ( auto : 임시변수 ) { 임시변수에 담은 각 요소마다 적용할 구현부 } 자바스크립트의 경우에는 위와 동일한 것이 for of 이다. 아래처럼 쓰인다 for (let 임시변수 of 돌아야 할 배열명) { 임시변수에 담은 각 요소마다 적용할 구현부 } 자바스크립트에는 비슷한 것으로 for in 이 있는데, for of 가 배열에서 쓰인다면 for in은 객체를 돌기위한 것이다. 아래처럼 쓰인다. 객체 내의 각 key 마다 대응해서 구현하게 된다 var obj = { a: 1, b: 2, c: 3 }; for (let 임시변수 in obj) { console.log(임시변수) // a, b, .. 2022. 8. 10.
readline 한 줄 씩 입력 받기 언어마다 코딩테스트의 입출력시에 자주 쓰이는 것들이 있다 input, cin, scanf, getline 등등 각각 공백을 기준으로나 줄을 기준으로 입력을 받는다 자바스크립트도 공백을 기준으로 한 input 이 있지만 줄단위로 입력을 받는 readline 모듈이 존재한다 자바스크립트의 내 내장 모듈로서 readable 스트림에서 rereadline 모듈을 이해해보자 기본 형태는 아래와 같다 const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line)=>{ /*입력 받는 값을 처리하는 코드*/ rl.clos.. 2022. 8. 6.
var 와 let, const 의 호이스팅 차이 자바스크립트의 변수에는 호이스팅이란 개념이 있다 컴파일 시 따로 변수를 저장해서 저장해두고, 실행 시 함수 내에서 변수가 아래나 중간에 있어도 저장한 걸 꺼내와 변수가 함수의 최상단에서 이미 선언된 것처럼 사용되는 것을 말한다 문제는 선언만 암시적으로 올라가고 할당은 그대로 제 위치에서 작동한다는 것이다 ++ 충격적이게도 for문의 조건문에서 선언한 변수 i 마저도 호이스팅 되어서 for문이 끝나도 변수 i 가 남게된다! console.log(x); // var 변수가 호이스팅에 의해 최상위로 선언만! 되어서 undefined 가 뜬다 var x = 3; 호이스팅의 개념이 없는 다른 언어의 경우, 변수 선언 전에 호출을 하면 컴파일 시 레퍼런스 에러가 뜨지만, 아주 개념 충만하신 자바스크립트님은 아래에 .. 2022. 8. 5.