Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

translation(JS): web/javascript/reference/global_objects/isnan #3764

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

astropsy999
Copy link
Contributor

@astropsy999 astropsy999 commented Dec 31, 2024

Оригінальний вміст: isNaN()@MDN, сирці isNaN()@GitHub

@github-actions github-actions bot changed the title translation(JS): web/javascript/reference/global_objects/isnan/ translation(JS): web/javascript/reference/global_objects/isnan Dec 31, 2024
@undead404 undead404 requested a review from a team January 2, 2025 08:01
Copy link
Contributor

@undead404 undead404 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Дякую. Поганої якості переклад, як завжди %-)


### Повернене значення

`true`, якщо задане значення є {{jsxref("NaN")}} після [перетворення на число](/uk/docs/Web/JavaScript/Reference/Global_Objects/Number#number_coercion); інакше `false`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`true`, якщо задане значення є {{jsxref("NaN")}} після [перетворення на число](/uk/docs/Web/JavaScript/Reference/Global_Objects/Number#number_coercion); інакше `false`.
`true`, якщо задане значення після [перетворення на число](/uk/docs/Web/JavaScript/Reference/Global_Objects/Number#zvedennia-do-chysla) є {{jsxref("NaN")}}; інакше `false`.


`isNaN()` є властивістю-функцією глобального об'єкта.

Для числових значень `isNaN()` перевіряє, чи є число значенням [`NaN`](/uk/docs/Web/JavaScript/Reference/Global_Objects/NaN). Коли аргумент функції `isNaN()` не є типу [Number](/uk/docs/Web/JavaScript/Data_structures#number_type), значення спочатку приводиться до числа, і отримане значення порівнюється з {{jsxref("NaN")}}.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Для числових значень `isNaN()` перевіряє, чи є число значенням [`NaN`](/uk/docs/Web/JavaScript/Reference/Global_Objects/NaN). Коли аргумент функції `isNaN()` не є типу [Number](/uk/docs/Web/JavaScript/Data_structures#number_type), значення спочатку приводиться до числа, і отримане значення порівнюється з {{jsxref("NaN")}}.
У разі числових значень `isNaN()` перевіряє, чи є число значенням [`NaN`](/uk/docs/Web/JavaScript/Reference/Global_Objects/NaN). Коли аргумент функції `isNaN()` не належить до типу [Number](/uk/docs/Web/JavaScript/Data_structures#typ-number), значення спочатку зводиться до числа, і отримане значення порівнюється з {{jsxref("NaN")}}.


Для числових значень `isNaN()` перевіряє, чи є число значенням [`NaN`](/uk/docs/Web/JavaScript/Reference/Global_Objects/NaN). Коли аргумент функції `isNaN()` не є типу [Number](/uk/docs/Web/JavaScript/Data_structures#number_type), значення спочатку приводиться до числа, і отримане значення порівнюється з {{jsxref("NaN")}}.

Ця поведінка `isNaN()` з нечисловими аргументами може бути заплутаною! Наприклад, порожній рядок перетворюється на 0, а булеве значення — на 0 або 1; обидва варіанти інтуїтивно сприймаються як «не числа», проте вони не дають `NaN`, і тому `isNaN()` повертає `false`. Отже, `isNaN()` не відповідає ні на питання «чи є вхідне значення саме числовим значенням {{jsxref("NaN")}}», ні на питання «чи є вхідне значення нечисловим».
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Ця поведінка `isNaN()` з нечисловими аргументами може бути заплутаною! Наприклад, порожній рядок перетворюється на 0, а булеве значення — на 0 або 1; обидва варіанти інтуїтивно сприймаються як «не числа», проте вони не дають `NaN`, і тому `isNaN()` повертає `false`. Отже, `isNaN()` не відповідає ні на питання «чи є вхідне значення саме числовим значенням {{jsxref("NaN")}}», ні на питання «чи є вхідне значення нечисловим».
Така поведінка `isNaN()` щодо нечислових аргументів може плутати! Наприклад, порожній рядок зводиться до 0, а булеве значення — до 0 або 1; обидва ці типи інтуїтивно сприймаються як «не числа», проте вони не обчислюються до `NaN`, і тому `isNaN()` повертає `false`. Отже, `isNaN()` не відповідає ні на питання «чи є вихідне значення саме числовим значенням {{jsxref("NaN")}}», ні на питання «чи є вихідне значення нечислом».


Ця поведінка `isNaN()` з нечисловими аргументами може бути заплутаною! Наприклад, порожній рядок перетворюється на 0, а булеве значення — на 0 або 1; обидва варіанти інтуїтивно сприймаються як «не числа», проте вони не дають `NaN`, і тому `isNaN()` повертає `false`. Отже, `isNaN()` не відповідає ні на питання «чи є вхідне значення саме числовим значенням {{jsxref("NaN")}}», ні на питання «чи є вхідне значення нечисловим».

{{jsxref("Number.isNaN()")}} — це більш надійний спосіб з'ясувати, чи справді значення дорівнює `NaN`. Також можна скористатися виразом `x !== x`, і жоден із цих методів не дає хибних спрацювань, які виникають із глобальною `isNaN()`. Аби перевірити, чи є значення числом, скористайтеся виразом [`typeof x === "number"`](/uk/docs/Web/JavaScript/Reference/Operators/typeof).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
{{jsxref("Number.isNaN()")}} — це більш надійний спосіб з'ясувати, чи справді значення дорівнює `NaN`. Також можна скористатися виразом `x !== x`, і жоден із цих методів не дає хибних спрацювань, які виникають із глобальною `isNaN()`. Аби перевірити, чи є значення числом, скористайтеся виразом [`typeof x === "number"`](/uk/docs/Web/JavaScript/Reference/Operators/typeof).
{{jsxref("Number.isNaN()")}} — це більш надійний спосіб з'ясувати, чи справді значення є числовим значенням `NaN`. Інший варіант: можна скористатися виразом `x !== x`, і жоден з обох методів не дає хибних спрацювань, які роблять глобальну `isNan()` ненадійною. Аби перевірити, чи є значення числом, слід користуватися виразом [`typeof x === "number"`](/uk/docs/Web/JavaScript/Reference/Operators/typeof).


{{jsxref("Number.isNaN()")}} — це більш надійний спосіб з'ясувати, чи справді значення дорівнює `NaN`. Також можна скористатися виразом `x !== x`, і жоден із цих методів не дає хибних спрацювань, які виникають із глобальною `isNaN()`. Аби перевірити, чи є значення числом, скористайтеся виразом [`typeof x === "number"`](/uk/docs/Web/JavaScript/Reference/Operators/typeof).

Функція `isNaN()` відповідає на питання "чи є вхідне значення функціонально еквівалентним {{jsxref("NaN")}} у числовому контексті". Якщо `isNaN(x)` повертає `false`, змінну `x` можна безпечно використовувати в арифметичних операціях, наче це дійсне число. Якщо `isNaN(x)` повертає `true`, `x` прирівнюється до `NaN`, і більшість обчислень з ним теж повернуть `NaN`. Це зручно, щоб перевірити, чи можна з аргументом працювати як із числом, і, за потреби, викинути помилку або підставити усталене значення тощо. У такий спосіб можна створити гнучку функцію, яка користується неявним перетворенням JavaScript залежно від контексту.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Функція `isNaN()` відповідає на питання "чи є вхідне значення функціонально еквівалентним {{jsxref("NaN")}} у числовому контексті". Якщо `isNaN(x)` повертає `false`, змінну `x` можна безпечно використовувати в арифметичних операціях, наче це дійсне число. Якщо `isNaN(x)` повертає `true`, `x` прирівнюється до `NaN`, і більшість обчислень з ним теж повернуть `NaN`. Це зручно, щоб перевірити, чи можна з аргументом працювати як із числом, і, за потреби, викинути помилку або підставити усталене значення тощо. У такий спосіб можна створити гнучку функцію, яка користується неявним перетворенням JavaScript залежно від контексту.
Функція `isNaN()` відповідає на питання "чи є вихідне значення функціонально еквівалентним {{jsxref("NaN")}}, коли скористатися цим значенням у числовому контексті". Якщо `isNaN(x)` повертає `false`, то змінну `x` можна безпечно використовувати в арифметичних операціях, наче це валідне число, що не є `NaN`. Якщо `isNaN(x)` повертає `true`, то `x` зводиться до `NaN`, і більшість обчислень з ним теж повернуть `NaN` (адже значення `NaN` – заразне). Цим можна скористатися, наприклад, щоб перевірити, чи можна обробляти аргумент арифметично (користуватися ним, "неначе" числом), і обробляти значення, що не схожі на числа, викидаючи помилку, підставляючи усталене значення тощо. У такий спосіб можна створити гнучку функцію, яка повною мірою користується з різносторонності JavaScript – неявного перетворення значень залежно від контексту.


Функція `isNaN()` відповідає на питання "чи є вхідне значення функціонально еквівалентним {{jsxref("NaN")}} у числовому контексті". Якщо `isNaN(x)` повертає `false`, змінну `x` можна безпечно використовувати в арифметичних операціях, наче це дійсне число. Якщо `isNaN(x)` повертає `true`, `x` прирівнюється до `NaN`, і більшість обчислень з ним теж повернуть `NaN`. Це зручно, щоб перевірити, чи можна з аргументом працювати як із числом, і, за потреби, викинути помилку або підставити усталене значення тощо. У такий спосіб можна створити гнучку функцію, яка користується неявним перетворенням JavaScript залежно від контексту.

> [!NOTE] > [`+` оператор](/uk/docs/Web/JavaScript/Reference/Operators/Addition) виконує як додавання чисел, так і конкатенацію рядків. Тому, навіть якщо `isNaN()` повертає `false` для обох операндів, оператор `+` все одно може повернути рядок, оскільки він не використовується як арифметичний оператор. Наприклад, `isNaN("1")` повертає `false`, але `"1" + 1` повертає `"11"`. Щоб бути впевненим, що ви працюєте з числами, [приведіть значення до числа](/uk/docs/Web/JavaScript/Reference/Global_Objects/Number#number_coercion) і скористайтеся {{jsxref("Number.isNaN()")}} для перевірки результату.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> [!NOTE] > [`+` оператор](/uk/docs/Web/JavaScript/Reference/Operators/Addition) виконує як додавання чисел, так і конкатенацію рядків. Тому, навіть якщо `isNaN()` повертає `false` для обох операндів, оператор `+` все одно може повернути рядок, оскільки він не використовується як арифметичний оператор. Наприклад, `isNaN("1")` повертає `false`, але `"1" + 1` повертає `"11"`. Щоб бути впевненим, що ви працюєте з числами, [приведіть значення до числа](/uk/docs/Web/JavaScript/Reference/Global_Objects/Number#number_coercion) і скористайтеся {{jsxref("Number.isNaN()")}} для перевірки результату.
> [!NOTE]
>
> [Оператор `+`](/uk/docs/Web/JavaScript/Reference/Operators/Addition) виконує як додавання чисел, так і зчеплення рядків. Тож навіть якщо `isNaN()` повертає `false` для обох операндів, оператор `+` все одно може повернути рядок, оскільки спрацьовує не як арифметичний оператор. Наприклад, `isNaN("1")` повертає `false`, але `"1" + 1` повертає `"11"`. Щоб мати певність, що відбувається робота з числами, [зведіть значення до числа](/uk/docs/Web/JavaScript/Reference/Global_Objects/Number#zvedennia-do-chysla) і скористайтеся {{jsxref("Number.isNaN()")}} для перевірки результату.

isNaN(" "); // false: рядок із пробілами перетворюється на 0, який не є NaN

// Дати
isNaN(new Date()); // false; Date-об'єкт можна перетворити на число (мітку часу)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
isNaN(new Date()); // false; Date-об'єкт можна перетворити на число (мітку часу)
isNaN(new Date()); // false; об'єкт Date можна перетворити на число (мітку часу)


// Дати
isNaN(new Date()); // false; Date-об'єкт можна перетворити на число (мітку часу)
isNaN(new Date().toString()); // true; рядкове представлення Date не можна перетворити на число
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
isNaN(new Date().toString()); // true; рядкове представлення Date не можна перетворити на число
isNaN(new Date().toString()); // true; рядкове представлення об'єкта Date не можна розібрати як число

@undead404
Copy link
Contributor

Коментар про якість перекладу стосується машини, що його виконувала, а не людини, звісно

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants