重新認識 delete
前言
最近發現自己對 delete 有很深的誤解,抽空做個學習,在此做個紀錄。
內容
原本我認為 delete 跟直接給 undefiend 的結果是一樣的!所以在 注意 in 搭配數字時 delete 和直接給 undefiend 的不同 才會說要注意不同,但實驗了一下搭配 Object 與 hasOwn() 後,發現了差異,範例如下
const example = {}; console.log(Object.hasOwn(example, "prop") );//false example.prop = "exists"; console.log( Object.hasOwn(example, "prop") );//true example.prop = null; console.log( Object.hasOwn(example, "prop") );//true example.prop = undefined; console.log( Object.hasOwn(example, "prop") );//true delete example.prop; console.log( Object.hasOwn(example, "prop") );//false
範例凱使先確認 prop 是否存在,回傳 false ,如預期,接著新增 prop 後,再次確認也如預期得到 true ,接著實驗給予 null ,結果是 true ,再來的 undefiend 也是一樣的結果,只有在執行 delete 後才能確實刪除成員的存在。
參考資料
[ developer.mozilla.org ] delete operator
沒有留言:
張貼留言