Как: оператор ~?
Я не могу зайти в оператор ~, чтобы узнать больше об этом. Может кто-нибудь, пожалуйста, объясните мне простыми словами, для чего он нужен и как его использовать?
4 ответа
Это побитовое НЕ.
Чаще всего я видел двойное побитовое НЕ для удаления десятичной части числа, например:
var a = 1.2;
~~a; // 1
Почему бы не использовать Math.floor
? Тривиальная причина в том, что он быстрее и использует меньше байтов. Более важная причина зависит от того, как вы хотите относиться к отрицательным числам. Рассматривать:
var a = -1.2;
Math.floor(a); // -2
~~a; // -1
Итак, используйте Math.floor
для округления используйте ~~
для отрубания (не технический термин).
Одним из случаев использования ~ (тильды), которое я видел, было получение логического значения для.indexOf().
Вы можете использовать: if(~myArray.indexOf('abc')){ };
Вместо этого: if(myArray.indexOf('abc') > -1){ };
Дополнительная информация: Великая тайна тильды (~)
Поисковая система, которая позволяет специальные символы: Symbol Hound
~ - побитовый оператор НЕ. Это будет инвертировать биты, которые составляют значение хранимой переменной.