I opened a js file that I wrote a while back and although it’s working, I thought I spotted an error. (JS is not my primary language)
I had this:
if( myvar = fieldval.match(mypattern))
{
//Do Stuff
}
So I think I get it. Is this a correct statement?:
A javascript assignment operation evaluates to the value being assigned.
I tested on w3schools
<script type="text/javascript">
var str="The rain in SPAIN stays mainly in the plain";
var patt1=/ain/gi;
var test
document.write(test=str.match(patt1));
</script>
and it writes “ain,AIN,ain,ain” where I might have expected it to write “true” or not to write at all because boolean true is not a string. Is my line of thought and then ultimate conclusion correct. (I ask about my line of thought on this because I do not have a lot of formal CS training.)
It is a correct statement. The new value of
myvaris tested:When the
String.matchmethod cannot find a match, it returnsnull.!!null === false, so theif-blockis not evaluated. When any non-empty match is found, the condition is true, and the block is evaluated.In this case, it is very likely that the if-statement is correct, and that the following is intended: