In brief
every() checks that all elements meet a condition. In an empty array, there is no element to break it.
Useful to know
every() returns true, if the condition is met for all checked items. At the first inappropriate element, the method stops and returns false. The special case is the empty : [].every(...) array returns true. [1]
In const scores = [5, 8, 10];, the scores.every(score => score >= 5) check gives true. If the list becomes [5, 3, 10], the result is false. The example checks a threshold without calculating an average.
If the business rule means "there are participants and everyone has passed", only every() is not enough. For plain solid array save scores.length > 0 && scores.every(score => score >= 5). A separate check for non-empty input is part of the app rule.
Don't mix "all" with "at least one." The first question is about every(), the second - about some(). The difference is most evident in a mixed list of appropriate and inappropriate values.
Sources
For further detail and to check the information: