死にます。
localStorage.setItem("name", undefined)
const name = localStorage.getItem("name")
if (name === undefined) {
console.log('name is undefined')
} else if (name == 'undefined') {
console.log('name is undefined string')
}
結果
name is undefined string
nullも同様。そもそもsetItemの引数は文字列であるべきです。エラーではじくわけでもなく、勝手に文字列になってしまうのが問題。
null, undefinedの場合は、setItemしないようにチェックすること。場合によってはremoveItemで消す必要があるかもしれない。そうするとgetItemでnullを返します。
function setName(value) {
if (name) {
localStorage.setItem("name", value)
} else {
// undefined, null, 空文字列のときはここに来る
localStorage.removeItem("name")
}
}