I'm new to JavaScript and have hit what seems to be an obvious issue.
const item = sessionStorage.getItem('item'); // undefined
if (item) {
return item;
}
In the Chrome debugger I can see that item is ing back as undefined. I would expect the conditional to fail. To my surprise it's evaluating to true.
I thought I'd already tested this out. Why would it be ing back as true in the conditional?
I've e across other checks such as those remended by How to check for "undefined" in JavaScript?. But... why do I have to do anything even remotely 'plex' for a simple check like this? The above approach seems so simple and elegant I'm reluctant to lose it.
I'm also seeing this approach in an example on .
I'm new to JavaScript and have hit what seems to be an obvious issue.
const item = sessionStorage.getItem('item'); // undefined
if (item) {
return item;
}
In the Chrome debugger I can see that item is ing back as undefined. I would expect the conditional to fail. To my surprise it's evaluating to true.
I thought I'd already tested this out. Why would it be ing back as true in the conditional?
I've e across other checks such as those remended by How to check for "undefined" in JavaScript?. But... why do I have to do anything even remotely 'plex' for a simple check like this? The above approach seems so simple and elegant I'm reluctant to lose it.
I'm also seeing this approach in an example on https://developer.mozilla/en-US/docs/Web/API/Window/sessionStorage.
Share Improve this question edited Nov 14, 2018 at 22:31 Paul 142k28 gold badges284 silver badges271 bronze badges asked Nov 14, 2018 at 22:25 Shane GannonShane Gannon 7,7569 gold badges46 silver badges73 bronze badges 01 Answer
Reset to default 13You're not getting the value undefined
from sessionStorage, but the string "undefined"
, which is truthy just like any other non-empty string.
I know you're not getting the value undefined
because that is impossible. sessionStorage.getItem
can only return a string or null
. Also note that setItem
will coerce its argument to a string, so sessionStorage.setItem('item', undefined)
sets item to the string "undefined"
.
If you want to remove an item you should use sessionStorage.removeItem('item');
instead of setting it to undefined
.