diff options
| author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
|---|---|---|
| committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
| commit | 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch) | |
| tree | a9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/web/javascript/reference/global_objects/math/sign | |
| parent | 074785cea106179cb3305637055ab0a009ca74f2 (diff) | |
| download | translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2 translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip | |
initial commit
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/math/sign')
| -rw-r--r-- | files/uk/web/javascript/reference/global_objects/math/sign/index.html | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/math/sign/index.html b/files/uk/web/javascript/reference/global_objects/math/sign/index.html new file mode 100644 index 0000000000..a3b2668270 --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/math/sign/index.html @@ -0,0 +1,116 @@ +--- +title: Math.sign() +slug: Web/JavaScript/Reference/Global_Objects/Math/sign +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sign +--- +<div>{{JSRef}}</div> + +<p>Функція <strong><code>Math.sign()</code></strong> повертає знак числа, визначаючи, чи являється число додатнім, від'ємним, або нулем.</p> + +<div>{{EmbedInteractiveExample("pages/js/math-sign.html")}}</div> + +<p class="hidden">Джерело цих інтерактивних прикладів зберігається у репозиторії на GitHub. Якщо ви маєте бажання зробити свій внесок у проект інтерактивних прикладів - будь ласка, зклонуйте репозиторій <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> та пришліть нам pull request.</p> + +<h2 id="Синтаксис">Синтаксис</h2> + +<pre class="syntaxbox"><code>Math.sign(<var>x</var>)</code></pre> + +<h3 id="Аргументи">Аргументи</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Число.</dd> +</dl> + +<h3 id="Результат">Результат</h3> + +<p>Число, що відображає знак аргументу. Якщо аргумент являється додатнім числом, від'ємним числом, додатнім чи від'ємним нулем, функція поверне відповідно <code>1</code>, <code>-1</code>, <code>0</code> чи <code>-0</code>. В інших випадках результатом буде {{jsxref("NaN")}}.</p> + +<h2 id="Опис">Опис</h2> + +<p>У зв'язку з тим, що <code>sign()</code> - це статичний метод <code>Math</code>, слід завжди викликати його як <code>Math.sign()</code>, аніж як метод створеного вами об'єкту <code>Math</code> (оскільки <code>Math</code> не являється конструктором).</p> + +<p>Ця функція має 5 різних видів результатів: <code>1</code>, <code>-1</code>, <code>0</code>, <code>-0</code>, <code>NaN</code>. Вони відповідно відображають "додатнє число", "від'ємне число", "додатній нуль", "від'ємний нуль" та {{jsxref("NaN")}}.</p> + +<p>Аргумент буде неявно перетворено у <code>number</code> при передачі у функцію.</p> + +<h2 id="Приклади">Приклади</h2> + +<h3 id="Застосування_Math.sign()">Застосування <code>Math.sign()</code></h3> + +<pre class="brush: js">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 +</pre> + +<h2 id="Поліфіл">Поліфіл</h2> + +<pre class="brush: js">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; + // Більш наочне уявлення представлено нижче + // + // ( (x > 0) ? 0 : 1 ) // якщо від'ємний x - то від'ємна 1 + // + // інакще (бо не може бути одночасно - та +) + // ( (x < 0) ? 0 : -1 ) // якщо додатній x - то додатня 1 + // || // якщо x є 0, -0, чи NaN, чи не являється числом, + // +x // то результатом буде x, (чи) якщо x не є + // // числом, то x приводиться до чисельного типу + }; +} +</pre> + +<p>У наведеному вище поліфілі не потрібно ніяких додаткових приведень типів <code>(x > 0) чи (x < 0)</code>, бо їх віднімання одного від іншого вже вимагає конвертації із булевого типу в числа.</p> + +<h2 id="Специфікації">Специфікації</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Специфікація</th> + <th scope="col">Статус</th> + <th scope="col">Примітка</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.sign', 'Math.sign')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Первинне визначення.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.sign', 'Math.sign')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Сумісність_із_браузерами">Сумісність із браузерами</h2> + +<p class="hidden">Таблиця сумісності на цій сторінці сформована автоматично із структурованих даних. Якщо ви маєте бажання зробити свій внесок до цих даних - будь-ласка, ось репозиторій <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>, надішліть нам свій pull request.</p> + +<p>{{Compat("javascript.builtins.Math.sign")}}</p> + +<h2 id="Дивіться_також">Дивіться також</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.trunc()")}}</li> +</ul> |
