What's the function of the "

This question already has an answer here:

  • Using bitwise OR 0 to floor a number 5 answers

  • The | in JavaScript is an integer bitwise OR operator. In that context, it strips off any fractional portion returned by parseFloat . The expression parseFloat($(this).val()) will result in a number with (potentially) a fractional component, but then |0 will convert it to an integer number, OR it with 0 (which means it won't change), and so the overall result is to get a whole number.

    So functionally, it truncates the fractional portion off the number. -1.5 becomes -1 , and 1.5 becomes 1 . This is like Math.floor , but truncating rather than rounding "down" ( Math.floor(-1.5) is -2 — the next lowest whole number — rather than -1 as the |0 version gives us).

    So perhaps that's why it was used, to chop off (rather than "floor") the fractional portion of the number.

    Alternately, it could be a typo. The author of that code might have meant to write this (note || rather than | ):

    Total += parseFloat($(this).val()) || 0;
    

    That defends against the possibility that $(this).val() returns "" or similar, resulting in parseFloat returning NaN . It uses the curiously-powerful || operator to return 0 rather than NaN in that case. (And there's an advertisement for putting spaces around your operators.) Would have to know the context of the code to say whether truncating to a whole number ( | ) makes sense when adding to Total , or if they were just defending the NaN case.


    The | operator in javascript is the bitwise or operator

  • https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators
  • This operator treats the operands as 32 bit integers and for every bit returns 1 if either is 1 and 0 otherwise.

    链接地址: http://www.djcxy.com/p/77430.html

    上一篇: 堆栈溢出

    下一篇: 什么是“