In Javascript, is there a good way to check if a variable was ever a true, (or any value), in the entire session? The best way I can think of right now is to perform a regular check like this, recording the truthiness in another variable:
if (variable){
variablewasevertrue = true;
}
Then when I want to know if the original variable was ever true, I check if the new variablewasevertrue is true or undefined. There’s nothing more graceful like if (variable was ever true){ is there? That doesn’t seem very Javascript-y.
No there is no
if (variable was ever true)facility in the language. Variables store values, not history.Intercepting values as they’re assigned and checking is the only way to do it. If the variable is really a property (e.g. a global variable is a property of the global object) you can intercept changes easily using setters.
So to have a history keeping global variable you could do
This will work on modern browsers, and there are
__defineSetter__variants on many older browsers.