注意 in 搭配數字時 delete 和直接給 undefiend 的不同
前言
在之前的 hasOwn() 與 in 搭配數字使用的意義 提過 in 搭配數字使用的意義,但實際使用後發現有個注意事項,在此做個紀錄。
內容
範例如下
const ar = [ 1 , 2 , 3 , 4 , undefined]; // console.log( 4 in ar);//true console.log( Object.hasOwn( ar, 4) );//true delete ar[4]; console.log( 4 in ar);//false console.log( Object.hasOwn( ar, 4) );//false
範例開始直接對 ar[4] 做 in ,結果是 true ,但是如果經過 delete 後,結果就會變成 false ,要注意直接給 undefiend 跟 delete 的意思是不同的!
參考資料
[ developer.mozilla.org ] in operator
[ developer.mozilla.org ] Object.hasOwn()
沒有留言:
張貼留言