항해/TIL
TIL(2/13) / JS 메서드
yeeendy
2024. 2. 13. 21:34
35개 가량의 알고리즘 풀면서 내가 자주 헷갈리던 메소드를 정리해보자
isNaN
어떤 값이 NaN인지 판별
반환 값 : true or false
isNaN(NaN) //true
isNaN(undefined) //true
isNaN({}) //true
isNaN(true) //false
isNaN(null) //false
isNaN(37) //false
substr()
문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환
str.substr(start[, length])
- start
- 추출하고자 하는 문자들의 시작위치
- 음수일 경우, 문자열총길이 + start의 값으로 취급
- length
- 추출할 문자들의 총 숫자
const str = 'yeeendy';
console.log(str.substr(3,2)); //'en'
console.log(str.substr(2)); //'eendy'
console.log(str.substr(-2)); //'dy'
Number.isInteger()
주어진 값이 정수인지 판별
Number.isInteger(value)
- value : 정수인지 확인하려는 값
- 반환 값 : true or false
Number.isInteger(0); // true
Number.isInteger(1); // true
Number.isInteger(-100000); // true
Number.isInteger(0.1); // false
Number.isInteger(Math.PI); // false
Number.isInteger(NaN); // false
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false
Number.isInteger("10"); // false
Number.isInteger(true); // false
Number.isInteger(false); // false
Number.isInteger([1]); // false
Number / parseInt 차이
- Number()
- 숫자 객체를 생성하는 생성자 함수
- 만약 인수를 숫자로 변환할 수 없으면 NaN 리턴
- parseInt
- 문자열 인자를 파싱하여 특정 진수의 정수를 반환
Number("123"); // 숫자 123을 반환
Number("123") === 123; // 참
Number("unicorn"); // NaN
Number(undefined); // NaN
차이
숫자와 다른 문자가 섞였을 때 (e 제외)
Number('35dh'); // NaN
parseInt('35dh'); // 35
약수 개수
function solution(left, right) {
var answer = 0;
for (let i = left; i <= right; i++) {
if (Number.isInteger(Math.sqrt(i))) {
answer -= i;
} else {
answer += i;
}
}
return answer;
}
제곱근이 정수면 약수의 개수가 홀수다