반응형
구현
function myNumber(str) {
var isNegative = false;
var result = 0;
// 공백 제거
str = str.trim();
// 음수 체크
if (str[0] === '-') {
isNegative = true;
str = str.slice(1);
}
for (var i = 0; i < str.length; i++) {
var charCode = str.charCodeAt(i);
// 숫자가 아닌 문자인 경우 종료
if (charCode < 48 || charCode > 57) {
break;
}
// 아스키 코드를 활용한 숫자 변환
var digit = charCode - 48;
result = result * 10 + digit;
}
// 음수 처리
if (isNegative) {
result = -result;
}
return result;
}
사용
var strNumber = '123.45';
var convertedNumber = myNumber(strNumber);
console.log(convertedNumber); // 123
console.log(typeof convertedNumber); // number
var strNegative = '-987';
var negativeNumber = myNumber(strNegative);
console.log(negativeNumber); // -987
console.log(typeof negativeNumber); // number
var strInvalid = 'abc';
var invalidNumber = myNumber(strInvalid);
console.log(invalidNumber); // 0
console.log(typeof invalidNumber); // number
이런 것으로 무엇을 알 수 있을까요?
반응형
'개발관련 > 자바스크립트 팁' 카테고리의 다른 글
타입스크립트는 왜 Object.keys의 타입을 모를까 (0) | 2023.08.20 |
---|---|
자바스크립트의 setTimeout은 왜 정확한 타이밍을 보장하지 못할까 (0) | 2023.08.03 |
자바스크립트를 예로 들어서 의존성 역전 원칙(Dependency Inversion Principle, DIP) (0) | 2023.07.10 |
자바스크립트의 실행 컨텍스트, Lexical Environment 및 관련 컨셉 이해하기 (0) | 2023.05.18 |
자바스크립트의 반복문 종류 및 사용법: for, for...in, for...of, forEach (0) | 2023.04.26 |