Javascript, что делает оператор ^ (карет)?

У меня есть код javascript:

<script type="text/javascript">
$(document).ready(function(){
  $('#calcular').click(function() {
    var altura2 = ((($('#ddl_altura').attr("value"))/100)^2);
    var peso = $('#ddl_peso').attr("value");
    var resultado = Math.round(parseFloat(peso / altura2)*100)/100;
    if (resultado > 0) {
      $('#resultado').html(resultado);
      $('#imc').show();
    };
  });
});
</script>

Что означает оператор ^ (карет) в Javascript?

Ответ 2

^ выполняет исключительную ИЛИ (XOR), например

6 есть 110 в двоичном формате, 3 - 011 в двоичном формате и

6 ^ 3, что означает 110 XOR 011, дает 101 (5).

  110   since 0 ^ 0 => 0
  011         0 ^ 1 => 1
  ---         1 ^ 0 => 1
  101         1 ^ 1 => 0

Math.pow(x, 2) вычисляет , но для квадрата лучше использовать x*x, так как Math.pow использует логарифмы и вы получаете больше ошибок приближений. (x² ~ exp(2.log(x)))

Ответ 3

Это побитовый оператор XOR.

Ответ 4

aᵇ можно записать в JS двумя способами:

  • Math.pow(a, b) ⇢ старый способ

  • a ** b ⇢ новый способ (ˢᵘᵖᵖᵒʳᵗᵉᵈ с ES7)

Тогда:

var altura2 = ($('#ddl_altura').attr("value")/100) **  2

Ответ 5

Указан побитовый оператор XOR кареткой (^) и, конечно же, работает непосредственно в двоичной форме номера. Побитовое XOR отличается от побитовое ИЛИ, поскольку оно возвращает только 1 когда ровно один бит имеет значение 1.

Источник: http://www.java-samples.com/showtutorial.php?tutorialid=820

Ответ 6

Его называют побитовым XOR. Позвольте мне объяснить это:

У вас есть:

Decimal Binary   
0         0
1         01
2         10
3         11

Теперь мы хотим 3^2=? то имеем 11^10=?

11
10
---
01
---

так 11^10=01 01 в десятичном формате 1.

Итак, мы можем сказать, что 3^2=1;