Why are you adding guard code for the user giving invalid values?

Also, this could be simplified by removing all the parentheses or arguably by using `Math.max(Math.min(this.value, 100), 0)`.    Not sure if the second one is better or worse.