Math.sign: JavaScript에서 숫자가 양수인지 음수인지 확인하는 방법
이제 ES6의 Math.sign을 사용하여 숫자의 부호를 결정하는 것이 매우 쉽습니다 👏 숫자가 양수인지, 음수인지 또는 0인지 나타냅니다.
const positive = 5;
const negative = -5;
const zero = 0;
Math.sign(positive); // 1
Math.sign(negative); // -1
Math.sign(zero); // 0
Math.sign 반환 값
Math.sign()
에는 5개의 가능한 반환 값이 있습니다.1 // positive number
-1 // negative number
0 // positive zero
-0 // negative zero
NaN // not a number
Math.sign(8); // 1
Math.sign(-8); // -1
Math.sign(0); // 0
Math.sign(-0); // -0
Math.sign(NaN); // NaN
Math.sign('hello'); // NaN
Math.sign(); //NaN
이 함수에 전달된 인수는 암시적으로
number
유형으로 변환됩니다.Math.sign 잡았다
일반적인 문제는
Math.sign
가 변환된 인수 값을 반환한다고 생각하는 것입니다. Math.sign
는 숫자의 부호만 반환합니다. 값을 반환하지 않습니다.Math.sign(-8);
// ✅ return -1
// ❌ It doesn't return -8
Math.sign 대 비교 연산자
커뮤니티에서 좋은 질문을 받았습니다.
Why use
Math.sign
when I can use the comparative operator?
if (number > 0) {
// Positive
} else {
// Negative
}
~ 대
if (Math.sign(number) > 0) {
// Positive
} else {
// Negative
}
실제로 부울 상태를 확인하는 경우
Math.sign
대신 비교 연산자를 사용합니다. 그러나 Math.sign
가 빛나는 곳은 숫자 값을 반환한다는 것입니다. 즉, 계산을 할 수 있습니다.const number = 5;
number > 0; // true
Math.sign(number); // 1
Math.sign으로 알고리즘 문제 해결
따라서 이 알고리즘 문제를 해결할 수 있습니다. "정수 반전"
Input: 123;
Output: 321;
Input: -123;
Output: -321;
function reverseInteger(num) {
const numArray = Math.abs(num) // Get the absolute value of our number > 321
.toString() // Convert our number to a string > '321'
.split('') // Convert our string of numbers to an array > [3, 2, 1]
.reverse() // Reverse our array of numbers > [1, 2, 3]
.join(''); // Convert our array back to a string > 123
const sign = Math.sign(num); // -1
return numArray * sign;
// Multiply our reverse string with the sign will produce the correct reverse number
}
reverseInteger(-321); // -123
이 알고리즘 질문은 Leetcode의 "Reverse an Integer"에서 가져온 것입니다. 데모를 단순화하기 위해 질문의 요구 사항을 편집했습니다. 실제 솔루션을 보려면 @loia5tqd001의 솔루션이 있습니다.
사실 이 기능을 처음 알게 된 건 이때다. 그래서 다른 사람의 솔루션을 보는 것을 좋아합니다. 다른 사람들이 무언가를 해결하는 방식은 항상 흥미롭습니다. 솔루션이 나쁘더라도 저도 읽어요. 피해야 할 사항을 가르쳐 주니까요 😉. 지식이 낭비되지 않습니다 💪. 모두 내 툴킷을 확장하고 있습니다. 학습 기계와 마찬가지로 더 많은 데이터를 제공할수록 더 좋아집니다. 제 뇌도 그런 것 같아요. 내가 좋아지려면 해결책을 많이 봐야해 😄
그렇기 때문에 많은 정보에서 무언가를 해결하는 다양한 방법을 다루고 있습니다. BEST 함수는 절대 없기 때문입니다. 가장 좋은 방법은 항상 상황에 따라 다릅니다. 툴킷이 클수록 최상의 방법을 찾을 확률이 높아집니다 👍
네거티브 제로
따라서
Math.sign
가 음수 0을 반환한다는 것을 알 수 있습니다.Math.sign(0); // 0
Math.sign(-0); // -0
그리고 다음 질문은 이 음수 0 🤨이 도대체 무엇인지입니다. "You Don't Know JS"의 Kyle Simpson이 가장 잘 설명합니다.
Now, why do we need a negative zero, besides academic trivia?
There are certain applications where developers use the magnitude of a value to represent one piece of information (like speed of movement per animation frame) and the sign of that number to represent another piece of information (like the direction of that movement).
In those applications, as one example, if a variable arrives at zero and it loses its sign, then you would lose the information of what direction it was moving in before it arrived at zero. Preserving the sign of the zero prevents potentially unwanted information loss.
YDKJS - Type & Grammer - Zeros
Math.sign 브라우저 지원
모든 최신 브라우저에 대한 지원이 훌륭합니다. 불행하게도 Internet Explorers는 나머지 클래스와 함께 플레이하기에는 너무 힙합니다. 그래서 거기에 대한 지원이 없습니다.
브라우저
크롬
✅
파이어폭스
✅
원정 여행
✅
가장자리
✅
인터넷 익스플로러
❌
MDN Browser Compatibility Chart
IE용 코드 Tidbit
하지만 걱정하지 마세요. 여기 대체 코드 스니펫이 있습니다. 이것은 Internet Explorer 및 이전 브라우저에서 작동합니다 👍
const positive = 5;
const negative = -5;
const zero = 0;
positive === 0 ? positive : positive > 0 ? 1 : -1; // 1
negative === 0 ? negative : negative > 0 ? 1 : -1; // -1
zero === 0 ? zero : zero > 0 ? 1 : -1; // 0
Math.sign 폴리필
또는
Math.sign
를 계속 사용하고 이것을 추가하십시오 Polyfill from MDNif (!Math.sign) {
Math.sign = function(x) {
return (x > 0) - (x < 0) || +x;
};
}
자원
읽어주셔서 감사합니다 ❤
안녕하세요! | | SamanthaMing.com
Reference
이 문제에 관하여(Math.sign: JavaScript에서 숫자가 양수인지 음수인지 확인하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/samanthaming/math-sign-how-to-check-if-a-number-is-positive-or-negative-in-javascript-20p5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)