Two operands in a statement

while ((nextFib = arrFib[0] + arrFib[1]) <= num) {

Howcome there is an equal sign and a <=?

(nextFib = arrFib[0] + arrFib[1]) creates a new Fibonacci number in the variable nextFib.

(***) <= num checks if the result from (***) is less than or equal to num.

This seems to be creating an array of Fibonacci numbers. If this is the challenge I think, this is a somewhat inefficient way to do this challenge because there is no need to store the entire array.