본문 바로가기
반응형

Archive188

나를 괴롭히던 Date 정리 Date때문에 얼마나 삽질을 많이했는지 모른다. 단순히 출력할때야 dayjs 나 momentjs 로 간단히 해결하지만 node 서버에서 db와 연동할때, UTC 타임존 때문에 처음엔 너무 해깔렸고, 특히나 스케줄링 서버를 작업할때, 스케줄링이 ec2의 로컬타임존을 따라가면서, 예상했던 한국시간에 계속 맞지 않았던 문제가 있었다. 해결방법은 ec2의 타임존을 변경하거나, 날짜 객체를 만들때마다 UTC로 변경해주거나, 아니면 스케줄링모듈이나 데이터베이스의 타임존을 한국시간에 맞추거나인데, 결론적으로 UTC에 맞춰야하는게 맞다는 판단이 들었고, 지금은 그렇게 해결하고있다. 왜냐하면 AWS RDS는 타임존을 UTC로 고정하기 때문에, 내가 다른 데이터베이스를 사용할때 timezone을 한국으로 맞춰놓는데 익숙해.. 2022. 8. 30.
{}의 원래목적 과 비구조분해 할당 타입스크립트를 별도의 설정없이사용하다보면 파일이 분리되어있어도 각각 모듈로 인식하지않고 하나로 인식할때가 있다. 아마 설정을 해주어야할텐데, 그때 코드 전체를 {} 으로감쌈으로써, 모듈화를 할수있다. 구조분해할당 시 아래 코드는 에러가나지만 let title, width, height; // SyntaxError: Unexpected token '=' 이라는 에러가 아랫줄에서 발생합니다. {title, width, height} = {title: "Menu", width: 200, height: 100}; 아래 코드는 에러가 나지 않는다. let title, width, height; // 에러가 발생하지 않습니다. ({title, width, height} = {title: "Menu", width: .. 2022. 8. 30.
map과 객체 자바스크립트를 쓰면서 가장 장점이 리터럴 객체라고 생각했다. 다른언어처럼 map을 만들어서 하나하나씩 set하는 과정이없이 key, value 객체를 만들어낼 수 있는 점때문이다. 그런데 자바스크립트에서는 map 자료구조가 존재하는데 차이점은 key값으로 문자열만을 받는 객체의 반면에 모든 데이터타입을 key로 가질수있다. 심지어 객체조차 가질수 있다. 아래코드는 놀랍게도 동작한다. let john = { name: "John" }; // 고객의 가게 방문 횟수를 세본다고 가정해 봅시다. let visitsCountMap = new Map(); // john을 맵의 키로 사용하겠습니다. visitsCountMap.set(john, 123); alert( visitsCountMap.get(john) ); .. 2022. 8. 30.
자바스크립트 배열과 객체 자바스크립트에서 배열은 객체이다. 조금 튼별한 객체여서, 다양한 메서드를 제공하고, key가 숫자이고 연속된다는 점과, length 프로퍼티를 가진다는 점이 다르다. 그래서 객체에서 사용하는 모든 것들을 사용할 수가 있었다. 특히나 신기했던게 let arr = ["I", "go", "home"]; delete arr[1]; // "go"를 삭제합니다. console.log(arr); // ['I', empty, 'home'] 이 delete 문법이 통한다는거였다. 그런데 정확히 삭제하는게 아니라, empty 로 바꿔버린다는점에서 사실 실용적이진 않다. length 도 그대로유지된다. 실용적이지 못한게아니라, 의도한 바가 아니라면 배열의 요소를 지우는데에 적합하지 않다. sort() 배열에 관련된 메서드는.. 2022. 8. 30.
자바스크립트 문자열 인덱스로 접근 문자열에서 인덱스로 접근하는 방법은 [] 와 charAt 이 있는데 []는 반환할 글자가 없을 때 undefined, chatAt은 빈문자열을 반환하는 차이점이 있다. 유니코드 표현 \uXXXX : UTF-16 인코딩 규칙을 사용한 유니코드 \u{X…XXXXXX}(한 개에서 여섯 개 사이의 16진수 글자) : UTF-32로 표현한 유니코드 문자열의 불변성 문자열의 중간글자를 수정할 수 없다. 새로 만드는 방법을 사용해야한다. let str = 'Hi'; str[0] = 'h'; // Error: Cannot assign to read only property '0' of string 'Hi' alert( str[0] ); // 동작하지 않습니다. indexOf 문자열에서 특정 문자열의 in.. 2022. 8. 29.
자바스크립트에서 숫자 다른언어와는 다르게 자바스크립트나 타입스크립트는 숫자에 관대하다고 느낀다. int, double, float 이런 형식들이 number 하나로 통합되어 사용된다. 정확히는 number 와 bigint 두가지가 있다. 숫자를 입력할때 0 이라는 숫자는 정말 많이 쓰인다. 10억을 입력할때 0을 일일이 다 적지 않고, 생략할수 있는 기법을 제공하는데 'e' 를 활용하는 방법이있다. const n = 3e20; console.log(n); //300000000000000000000 e는 왼쪽 숫에 e 오른쪽 수만큼의 10의 거듭 제곱을 하는 효과이다. 동일하게 음수는 거듭제곱만큼 나누는 효과가 있다. 10진수, 16진수, 8진수 2진수 자바스크립트에서 지원하는 진법은 10진수를 포함해 4개이다. 다양한 진법을.. 2022. 8. 29.
반응형