@wallhackio Why would you ever write any of the above two options instead of if (!x)? Asking as a C programmer. Are there any situations where these do different things?
@vaporeon_ there are non-nullish values that are coerced to false. or x could be false itself. That means the following values would also be treated as nullish:
false""0-00nNaN
@wallhackio @vaporeon_ this is a better answer than mine
0n is an arbitray purrecision integer literal ftr
re: no image descriptions
@wallhackio @vaporeon_ now THIS is javascript
re: no image descriptions
@wallhackio @vaporeon_ a consequence of this standardization is that, in web browsers, document.all == null and null == document.all are both true
re: no image descriptions
@wallhackio @vaporeon_ so anyway MDN is lying here when they say the behavior is "non-standard". it is literally standardized
re: no image descriptions
@wallhackio @vaporeon_ oh they mean that the actual document.all purropurrty is nonstandard, as in, the DOM---wait no fuck the standard says it's "obsolete" but REQUIRED fur implementers to implement a document.all purropurrty
re: no image descriptions
@aescling @wallhackio @vaporeon_ I believe they mean the property "document.all is null in some comparisons" is what they're saying is nonstandard and should not be relied upon. es2027 technically says it must not happen elsewhere but *can* happen for document.all and the HTML standard doesn't say one way or the other, so I'm not sure it technically is a standard. (Either way it is not a "standard" value when coercing an HTMLCollection to boolean and worth calling out.)
re: no image descriptions
@wallhackio @vaporeon_ this behavior is standardized btw https://tc39.es/ecma262/multipage/additional-ecmascript-features-for-web-browsers.html#sec-IsHTMLDDA-internal-slot