«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > ## Что делает оператор двойной тильды (~~) в JavaScript?

## Что делает оператор двойной тильды (~~) в JavaScript?

Опубликовано 17 ноября 2024 г.
Просматривать:798

## What Does the Double Tilde Operator (~~) Do in JavaScript?

Оператор двойной тильды в JavaScript (~~)

В JavaScript оператор ~~ — это оператор приведения типа, который удаляет все после десятичная точка числа. Это отличается от оператора ~, который представляет собой побитовый оператор НЕ, который инвертирует биты значения.

Операция

Оператор работает, сначала преобразуя его операнд для 32-битного целого числа со знаком. Это означает, что даже если операнд является числом с плавающей запятой или строкой, внутри он будет рассматриваться как целое число. Оператор эффективно выполняет следующее:

  • Если операнд отрицательный, он округляется до следующего целого числа (Math.ceil).
  • Если операнд положительный, он округляется до следующего целого числа (Math.floor).

Полезность

Хотя оператор ~~ может показаться простой заменой Math.floor или Math.ceil, он имеет некоторые ограничения:

  • Это может привести к переполнению, если операнд находится за пределами диапазона от -(2^31) до 2^31 - 1.
  • Он не подходит для нецелых операндов, так как игнорирует десятичную часть.

Поэтому обычно рекомендуется использовать x (унарный плюс) или Number(x) для приведения типа, и Math.floor или Math.ceil для округления.

Пример

Рассмотрим число -43.2:

  • ~~(-43.2) = -43
  • Math.floor(-43.2) = -44

Как видите, ~~ округляет в сторону нуля, а Math.floor округляет в меньшую сторону. Такое поведение может быть полезно в определенных сценариях, например при усечении числа без использования десятичной точки.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3