JS метод Math.sign()


Загальний опис

Метод Math.sign() є частиною об'єкта Math в JavaScript і використовується для визначення знаку числа. Його основна корисність полягає у тому, що за допомогою цього методу можна легко і швидко визначити, чи є число додатним, від'ємним чи нулем. Це може бути корисним у різних математичних операціях або умовних виразах.

Для того, щоб використовувати Math.sign(), потрібно передати йому число як аргумент. Метод повертає:

  • 1, якщо число додатнє;
  • -1, якщо число від'ємне;
  • 0, якщо число рівне нулю і його знак позитивний;
  • -0, якщо число рівне нулю і його знак негативний;
  • NaN, якщо аргумент — це не число.

Давайте розглянемо декілька прикладів:

  1. Простий приклад:

    console.log(Math.sign(3));     // 1
    console.log(Math.sign(-3));    // -1
    console.log(Math.sign(0));     // 0
    
  2. Використання в умовному виразі:

    let num = -5;
    if (Math.sign(num) === -1) {
     console.log('Число від\'ємне');
    } else {
     console.log('Число додатнє або нуль');
    }
    
  3. Робота з невідомими або динамічними значеннями:

    let values = [3, -2, 0, "текст", NaN];
    for (let value of values) {
     console.log(`Знак числа ${value} - ${Math.sign(value)}`);
    }
    

Особливості методу Math.sign():

  1. Якщо аргумент не є числом, метод автоматично спробує перетворити його на число. Наприклад, Math.sign("5") повертає 1, але Math.sign("текст") повертає NaN.
  2. Для дуже малих чисел, які є близькими до нуля, але все ще мають певний знак (наприклад, з-за обрізання або заокруглення), Math.sign() допоможе визначити цей знак..
автор: Bond

Порада

Для досвідчених програмістів: у випадку роботи з великими масивами чисел, де потрібно визначити знак кожного числа, використання Math.sign() може бути дуже корисним для оптимізації коду. Використання цього методу може спростити і прискорити обробку даних.

автор: Bond
Порада

Якщо вам потрібно виконати якусь операцію тільки для додатних або тільки для від'ємних чисел, використовуйте Math.sign() для умовного програмування. Наприклад:

let number = -5;
if (Math.sign(number) === -1) {
  console.log("Число від'ємне");
}
автор: Bond
Нотатка

При роботі із не числовими типами даних, Math.sign() повертає NaN (не число). Тому завжди перевіряйте вхідні дані перед використанням методу, аби уникнути неочікуваних результатів. Наприклад: Math.sign("текст") поверне NaN.

автор: Bond

Синтаксис

Math.sign(x)

Параметри

x

Число, знак якого потрібно визначити.

автор: Bond

Повернення

number

Повертає число, яке представляє знак x:

  • Якщо x додатнє, повертає 1.
  • Якщо x від'ємне, повертає -1.
  • Якщо x - це додатний нуль, повертає 0.
  • Якщо x - це від'ємний нуль, повертає -0.
  • У всіх інших випадках повертає NaN, що позначає "не число".
автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
38 25 9 25 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
38 38 25 9
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.12.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми будемо сортувати масив чисел, розподіляючи їх на додатні, від'ємні та нулі. Це демонструє, як Math.sign() може бути корисним у більш складних операціях, наприклад, при роботі з масивами.

const numbers = [3, -2, 0, 5, -1, 0, -4, 8];

const positive = [];
const negative = [];
const zeros = [];

// Розподіляємо числа по масивах за їх знаком
for (const num of numbers) {
    const sign = Math.sign(num);
    if (sign === 1) {
        positive.push(num);
    } else if (sign === -1) {
        negative.push(num);
    } else {
        zeros.push(num);
    }
}

console.log("Додатні числа:", positive);
console.log("Від'ємні числа:", negative);
console.log("Нулі:", zeros);
автор: Bond

За допомогою цього коду користувач може ввести будь-яке число у поле вводу і, натиснувши кнопку "Перевірити знак", отримає результат про знак введеного числа.

автор: Bond

У цьому прикладі ми використовуємо метод Math.sign() для того, щоб визначити знак числа і вивести відповідне повідомлення у консоль.

const number = -15;

// Використовуємо Math.sign() для отримання знаку числа
const sign = Math.sign(number);

// Виводимо результат
if (sign === 1) {
    console.log("Число додатнє");
} else if (sign === -1) {
    console.log("Число від'ємне");
} else {
    console.log("Це нуль");
}
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід