현재 번역은 완벽하지 않습니다. 한국어로 문서 번역에 동참해주세요.

Math.sign() 함수는 어떤 수의 부호를 반환합니다. 이것은 그 수가 양수, 음수 또는 0인지를 나나냅니다.

문법

Math.sign(x)

매개변수

x
수치.

반환 값

주어진 인수의 부호를 나타내는 수치. 인수가 양수, 음수, 양수인 영 또는 음수인 영이면, 이 함수는 1, -1, 0, -0을 각각 반환합니다. 그렇지 않으면, NaN 이 반환됩니다.

설명

sign() 이Math의 정적 메소드이기 때문에 항상 Math.sign()으로 사용합니다. 사용자가 만든  Math 개체의 메소드로 가 아닙니다.   (Math 는 생성자가 아닙니다).

이 함수는 반환 값이 5 가지이며, 1, -1, 0, -0, NaN 입니다. 각각 "양수", "음수", "양의 영", "음의 영", NaN 입니다.

이 함수에 전달된 인수는 묵시적으로 수치 로 변환됩니다.

예제

 Math.sign()을 사용하기

Math.sign(3);     //  1
Math.sign(-3);    // -1
Math.sign('-3');  // -1
Math.sign(0);     //  0
Math.sign(-0);    // -0
Math.sign(NaN);   // NaN
Math.sign('foo'); // NaN
Math.sign();      // NaN

Polyfill

if (!Math.sign) {
  Math.sign = function(x) {
    // x 가 NaN 이면, 결과는 NaN 입니다.
    // x 가 -0 이면, 결과는 -0 입니다.
    // x 가 +0 이면, 결과는 +0 입니다.
    // x 가 음수이면서 -0 이 아니면, 결과는 -1 입니다.
    // x 가 양수이면서 +0 이 아니면, 결과는 +1 입니다.
    return ((x > 0) - (x < 0)) || +x;
    // A more aesthetical persuado-representation is shown below
    //
    // ( (x > 0) ? 0 : 1 )  // if x is negative then negative one
    //          +           // else (because you cant be both - and +)
    // ( (x < 0) ? 0 : -1 ) // if x is positive then positive one
    //         ||           // if x is 0, -0, or NaN, or not a number,
    //         +x           // Then the result will be x, (or) if x is
    //                      // not a number, then x converts to number
  };
}

위의 polyfill에서는, (x > 0) 또는 (x < 0) 인 수치들을 만드는 데에 어떤 추가의 타입-강제하기도 필요하지 않은 것은  그 수치들을 서로에게서 빼는 것이 불린형에서 수치로의 형 변환을 강요하기 때문입니다.

규격명세

규격명세 상태 코멘트
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.sign' in that specification.
Standard 최초의 정의.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.sign' in that specification.
Draft  

브라우저 호환성

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support38 Yes25 No259
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes25 Yes Yes Yes

같이 보기

문서 태그 및 공헌자

이 페이지의 공헌자: yssgo
최종 변경: yssgo,