Refactoring a function to return all scores above a certain threshold
My 2 cents:


var output should probably be highScores or some such, since it never contains what is returned, nor does it get outputted
nums = scoresArg, threshold = thresholdArg; makes little sense, just use the arguments
function scoresAbove(scoresArg, thresholdArg) , I am not sure what the value is of postpending 'Arg' to the argument names, I would go for simply function scoresAbove(scores, threshold)
The check for Array should really be a separate function, it is completely re-usable
Ditto for Number
For the actual filtering , I would use the built-in filter : 

highScores = scores.filter( function(v){ return v &gt; threshold });
Since output is an array, I would not compare with ""
Why the double concatenation here: return "No scores were above the " + " threshold you set as " + threshold;
Arguments of the wrong type should be rare enough that you can throw an exception since something is clearly wrong with the program.


You could try

function scoresAbove( scores, threshold ) 
{
  "use strict";
  var highScores;

  if( notArray( scores ) )
    throw "scores is not an array";
  if( notNumber( treshold ) )
    throw "treshold is not a number"

  highScores = scores.filter( function(v){ return v &gt; threshold });

  if( !highScores || !highScores.length )
    return "No scores were above the threshold you set as " + threshold;

  return "The following scores were above the threshold: " + output.join(", ");
}


You would have to write the notNumber and notArray function of course.
JSLint migh complain about missing curly braces, to each his own ;)