JavaScript 5

Math.floor() vs Math.trunc()

소수점 이하를 버려야 하는 상황이 나올 때 항상 Math.floor() 함수를 썼으나, 의도하지 않은 상황이 나올 수 있다는 사실을 인지하여 관련 함수들을 정리해 본다. Math.ceil() : 소수점 이하를 올리는 함수 Math.floor() : 소수점 이하를 내리는 함수 Math.round() : 소수점 이하를 반올림하는 함수 Math.trunc() : 소수점 이하를 버리는 함수 Math.floor() 는 내림해주는 함수이기 때문에 소수점 이하를 버리기 위해 사용한다고 했을 때, 해당 값이 양수일 때는 적적할 것이나, 음수일 때 문제가 된다. 예를 들어 -15.5 에서 소수점을 버리고 '-15' 만 return 하고 싶을 경우, Math.floor(-15.5) 를 해버리게 되면 '-16' 이 retu..

JavaScript 2023.06.14

JavaScript | 진수 변환

10진수를 n진수로 변환하는 코드 var num = 125; // 10진수를 2, 8, 16진수로 각각 변환 num.toString(2);// '1111101' num.toString(8);// '175' num.toString(16);// '7d' n진수를 10진수로 변환하는 코드 var bin = 1111101; var oct = 175; var hex = '7d'; // 2, 8, 16진수를 10진수로 변환 parseInt(bin, 2);// 125 parseInt(oct, 8);// 125 parseInt(hex, 16);// 125 n진수를 n진수로 변환하는 코드 var bin = 1111101; var hex = '7d'; // 2진수를 3진수로, 16진수를 8진수로 변환 (10진수는 모두 1..

JavaScript 2022.09.14

Array.join(' ') 의 길이가 배열 길이보다 1이 작은 이유

11자리의 고객 번호를 입력했을 때, 앞의 5개의 자리가 0으로 채워지도록 하는 비교적 간단한 요청 사항이 있었다. 코드를 이런 식으로 짜니 고객이 조회되지 않아 확인해보니, 0이 하나 빠져있었다. 왜 이렇게 되는지 이해가 잘 안 가서 콘솔에 직접 쳐보기도 하고, 찾아보기도 했는데 의외로 간단하게 의문을 해소할 수 있었다. join() 은 배열의 모든 요소들을 연결해서 하나의 문자열을 만드는 메소드이고, join() 안에 오는 '0'은 fill() 처럼 채워준다는 것이 아니라 그저 배열의 각 요소들을 구분시켜줄 지정 기호일 뿐이다. 결국 5개의 비어있는 요소 사이에 0이 들어가니까 0이 4개가 되고, 비어있는 요소들은 undefined 이기 때문에 빈 문자열로 반환되어 길이가 4가 되는 것이었다. joi..

JavaScript 2022.05.16

moment.js 날짜 더하기 및 빼기 (add, subtract)

회사에서 moment.js 를 사용하는 조회 기간 박스의 기본으로 세팅되는 기간을 수정해야 하는 일이 있었는데, add() 와 subtract() 를 사용하여 간단하게 해결했다. add() - 날짜 및 시간 더하기 moment().format(); // 2022-05-09T10:22:20+09:00 moment().add(1, "Y").format(); // 2023-05-09T10:22:20+09:00 (1년) moment().add(1, "M").format(); // 2022-06-09T10:22:20+09:00 (1달) moment().add(1, "w").format(); // 2022-05-16T10:22:20+09:00 (1주) moment().add(1, "d").format(); // 2..

JavaScript 2022.05.09