Warning: Some posts on this platform may contain adult material intended for mature audiences only. Viewer discretion is advised. By clicking ‘Continue’, you confirm that you are 18 years or older and consent to viewing explicit content.
It works with everything except of course for falsy values
myThing.number = someNumberThatShouldNotBeEqualToZero
if (myThing.number) {
// do something very important with that number that should not be equal to zero
}
// This can fail at anytime without warning
So you’ve got to be extra careful with that logic when you’re dealing with numbers.
I am not saying it’s wrong though. I’m saying it’s often annoying.
Besides, null is a perfectly valid value for a property, just as 0. Working with API Platform, I couldn’t tell the number of times I used this kind of statement:
if (property || property === null) {
// do some stuff
}
Probably just as much as
if (property || property === 0) {
//do some stuff
}
Falsy zero? What’s wrong with that, 1 is true and 0 is false. I thought that was standard logic?
in javascript a property is truthy if it exists
myThing.property = "some string" if (myThing.property) { // true // do something }
It works with everything except of course for falsy values
myThing.number = someNumberThatShouldNotBeEqualToZero if (myThing.number) { // do something very important with that number that should not be equal to zero } // This can fail at anytime without warning
So you’ve got to be extra careful with that logic when you’re dealing with numbers.
I am not saying it’s wrong though. I’m saying it’s often annoying.
ah ok , I think I write this a bit more verbose when using other languages, instead of
if(thing) { stuff; }
I do
if(thing != null) { stuff; }
so checking for numbers being truthy & existing didn’t seem like an issue
In the case of a non-existing property, the value would be undefined rather than null.
And while == and != exist in JavaScript, most linters will throw an error and require a === and !== instead as they should be avoided.
null == undefined // true null === undefined // false
Besides, null is a perfectly valid value for a property, just as 0. Working with API Platform, I couldn’t tell the number of times I used this kind of statement:
if (property || property === null) { // do some stuff }
Probably just as much as
if (property || property === 0) { // do some stuff }