이 번역은 완료되지 않았습니다. 이 문서를 번역해 주세요.

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  

브라우저 호환성

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support 38Edge Full support YesFirefox Full support 25IE No support NoOpera Full support 25Safari Full support 9WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 25Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support 0.12

Legend

Full support  
Full support
No support  
No support

같이 보기

문서 태그 및 공헌자

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