Вы должны удалить var
внутри цикла for. Также вы должны переместить объявление newX
внутри функции. И есть и другие ошибки.
function factorial(x) {
var newX = 1
if(x > 0){
for(i = 1;i <= x;i++){
newX = newX * i ;
}
return newX;
}
}
Кроме того, для полноты вы должны вернуть 1, если х равен 0, и NaN, если х отрицательно или не является целым числом.
Вы можете переписать его как рекурсивную функцию:
function factorial(x) {
if(x == 0) return 1;
return x*factorial(x-1);
}
выглядит чище.