Один из вариантов такой функции:
function isInteger(num) { return (num ^ 0) === num;
}
alert( isInteger(1) ); // true alert( isInteger(1.5) ); // false alert( isInteger(‐0.5) ); // false
Обратите внимание: num^0 – в скобках! Это потому, что приоритет операции ^ очень низкий. Если не поставить скобку, то === сработает раньше. Получится num ^ (0 === num) , а это уже совсем другое дело.
К условию
Симметричны ли операции ^, |, &?
Операция над числами, в конечном итоге, сводится к битам. Посмотрим, можно ли поменять местами биты слева и справа. Например, таблица истинности для ^ :
a
|
b
|
результат
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
Случаи 0^0 и 1^1 заведомо не изменятся при перемене мест, поэтому нас не интересуют. А вот 0^1 и 1^0 эквивалентны и равны 1 . Аналогично можно увидеть, что и другие операторы симметричны.
Ответ: да.
К условию
Do'stlaringiz bilan baham: |