Javascript,^(脱字符号)运算符的作用是什么?


78

我有一些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中是什么意思?

Answers:


84

^运算符是按位XOR运算符。要平方一个值,请使用Math.pow

var altura2 = Math.pow($('#ddl_altura').attr("value")/100, 2);

4
在像Javascript这样的语言中,类型是如此的松散,几乎不存在,我几乎惊讶于甚至还有按位运算:)
tenfour 2010年

1
我知道pow函数(Loreal Web Master似乎没有...),但找不到javascript的^运算符。感谢您的链接!
托雷斯

3
好赶上!将其转发给我的西班牙朋友,他感到有些震惊。注意到例如200cm / 70kg如何为您提供无限的BMI ;-)
Michael

5
要平方一个值,将其乘以它。在几乎所有平台上,它都更快,更准确。
斯蒂芬·佳能

4
在ES7中变得更加轻松:2**5 //32
Viney

38

^ 例如,正在执行异或(XOR)

6110二进制的,3011二进制的,并且

6 ^ 3,意思是110 XOR 011101(5)。

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

Math.pow(x,2)进行计算,但对于平方,您最好使用x*xMath.pow使用对数,这样会得到更多的近似误差。(x² ~ exp(2.log(x))


不知道对数事实!谢谢!(因此可能还更快,不是吗?)
迈克尔(Michael

可能会更快(虽然数学处理器对于double简单的操作来说非常快-使用泰勒级数的优化方法,对数可能会更慢)。
e2-e4'9

想知道Math.pow为什么不只使用x * x吗?
Jowen 2014年

2
@Jowen forx²...但是如果您需要计算x ^ 2.123123怎么办?
e2-e4'3


2

它称为按位异或。让我解释一下:

你有 :

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;


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.