JS
-
string 의 길이 제한, 근데 언어별로 길이가 다르다면..?Java Script 2022. 10. 12. 00:09
개발하는 서비스에서 이런 경우가 있었다. 검색어를 라벨모양의 컴포넌트에 넣어서 보여줘야하는데, 한글 기준 max length는 20자로, 20자 초과시 ellipsis 를 넣어주어야한다. 그런데 같은 기준으로 하자니 영어가 기준일 때는 영어 한 글자 한 글자가 차지하는 부피(& 바이트)가 작기 때문에 검색어가 영어일 때는 굳이 ellipsis를 지정해줄 필요가 없었다. 컴포넌트의 크기 기준이 모두 %로 되어있어 text-overflow:ellipsis; 를 사용하는 것도 애매.. (px로 넓이를 지정해서 사용해야한다.) 블록컴포넌트에서 사용해야하는건 알겠지만, 이상하게 꽂혀서 다른 방법을 찾아봤다. 1. textEncoder를 사용해서 해당 string을 encode 해준 다음, 길이를 측정하기. str..
-
[string] slice() vs substring()Java Script 2022. 5. 23. 21:58
알고리즘 클럽에서 발표했던 자료를 다시 번역하여 정리했습니다. substr()은 deprecated 되었기에 slice() 와 substring() 만 다시 비교 정리해보았다. slice() 해당되는 부분을 추출하여 새로운 string을 반환한다. let str = "Apple, Banana, Kiwi"; let part = str.slice(7, 13); // Banana 만일 음수가 매개변수로 주어지면 뒤에서부터 자리를 세어나간다. let part = str.slice(-12, -6); // Banana 하나의 매개변수가 주어지면 그 자리부터 나머지 string 이 반환된다. let part = str.slice(15); // Kiwi let part = str.slice(-12); // Kiwi s..
-
Delete와 Undefined, 그리고 garbage collectorJava Script 2022. 2. 12. 21:34
멘티 님이 궁금해하던 질문에 대답하려고 하다보니 엄청 깊게 들어와 버려서 정리한다! 의도적으로 값이 비어있음을 나타낼 때 사용하는 null은 'null' 이라는 글자의 사이즈만큼만 메모리를 사용한다. 하지만 선언한 후 값을 할당하지 않았음을 뜻하는 undefined는 실제 메모리를 차지한다. (여기부터 흥미롭다) delete 는 피연산자로 지정된 객체의 프로퍼티를 삭제해준다. 그러니까 객체를 통째로 삭제할 수는 없고 해당 프로퍼티만 삭제해주는 것이다. delete가 삭제해준 프로퍼티는 undefined를 값으로 가지며, var 로 정의한 (명시적으로 선언한) 프로퍼티들은 삭제할 수 없다. var hello = { name: 'sj', age: '20', } delete hello.age; // age라는..
-
javascript 와 typescript의 타입 시스템 기능Type Script 2022. 1. 25. 22:07
typescript는 javascript의 superset 언어로써, 초보자인 내가 보기엔 type이 묻어있는 javascript 이런 느낌이었다. (사실 지금도 그렇다.) 하지만 그 차이점을 먼저 정리해야 내 머릿속에 이 잘못된 인식이 바로잡힐 것 같다. type 이라는 개념은 typescript에만 존재하는 것이 아니다. number, string, boolean, enum 등등 자료형은 거의 대부분의 언어에 존재한다. typescript가 javascript와 가장 다른 점은 이 type을 언제 어떻게 결정, 변환, 검증 및 검출하는가 이다. 타입 시스템 기능 자바스크립트 타입스크립트 결정 방식 동적 타입 바인딩 대부분 정적, 점진적 변환 방식 자동으로 변환된다. (묵시적/암묵적 타입 변환) 대부분..