^ (캐럿) 기호는 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에서 (캐럿) 기호 는 무엇을 의미합니까?

답변:


84

^연산자는 비트 단위의 XOR 연산자이다. 값을 제곱하려면 다음을 사용하십시오 Math.pow.

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

4
유형이 너무 느슨해서 거의 존재하지 않는 Javascript와 같은 언어에서는 비트 연산도 있다는 사실에 거의 놀랐습니다. :)
tenfour

1
나는 pow 함수를 알고 있지만 (Loreal Web Master는 안되는 것 같습니다 ...) javascript의 ^ 연산자를 찾을 수 없습니다. 링크 주셔서 감사합니다!
토레스

3
좋은 캐치! 약간 충격을받은 스페인 친구에게 전달했습니다. 예를 들어 200cm / 70kg이 BMI 무한대를 제공하는 방법에 주목했습니다. ;-)
Michael

5
값을 제곱하려면 값을 곱하십시오. 거의 모든 플랫폼에서 더 빠르고 정확합니다.
Stephen Canon

4
ES7에서 훨씬 쉬워 짐 :2**5 //32
Viney 2016

38

^ 예를 들어 배타적 OR (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*xMath.pow가 로그를 사용하고 더 많은 근사 오류를 얻으므로 더 잘 사용 합니다. ( x² ~ exp(2.log(x)))


로그 사실을 알지 못했습니다! 감사! (따라서 아마도 더 빠르지 않습니까?)
Michael

더 빠를 가능성이 있습니다 (수학 프로세서는 double간단한 작업의 경우 매우 빠르지 만 Taylor 시리즈의 최적화를 사용하는 동안 로그는 더 느릴 수 있습니다).
e2-e4

Math.pow가 x * x를 사용하지 않는 이유는 무엇입니까?!
Jowen 2014-04-22

2
@Jowen for x² ...하지만 x ^ 2.123123을 계산해야한다면 어떨까요?
e2-e4 2015 년


3

비트 XOR이라고합니다. 설명하겠습니다.

당신은 :

Decimal Binary   
0         0
1         01
2         10
3         11

이제 우리는 3^2=원합니까? 다음 우리는11^10=?

11
10
---
01
---

그래서 11^10=01 01Decimal은 1.

그래서 우리는 3^2=1;


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.