Другой вопрос задан о значении фрагмента кода a >>> 0
в Javascript.Оказывается, это умный способ убедиться, что переменная представляет собой 32-разрядное целое число без знака.
Это довольно аккуратно, но мне это не нравится по двум причинам.
- Цель выражения не ясна, по крайней мере, мне.
- Это не работает для отрицательных чисел
Это приводит меня кспросите: Какой самый идиоматический способ преобразования произвольного значения в «целое число» в Javascript? Он должен работать для целых чисел со знаком, а не только для неотрицательных чисел.Случаи, когда это нарушается из-за того, что целые числа являются просто замаскированными числами с плавающей точкой в Javascript, допустимы, но должны быть подтверждены.Он не должен возвращать undefined
или NaN
в любом случае (это не целые числа), но должен возвращать 0
для нечисловых значений.