JavaScript use strict だと delete 演算子でエラーになってくれる

変数や関数で delete をした場合、削除できないので false が返りますが、実行時のエラーにはなりません。

let hoge = 'hoge'
delete hoge //false が返る

console.log(hoge) // hoge と出力される

strict モードにすると、削除できないプロパティに対して delete をした場合はエラーにしてくれます。

'use strict'

let hoge = 'hoge'
delete hoge // SyntaxError になる

削除したつもりが削除できていない、という事態を避けることができるので、やはり use strict はあった方が良さそうです。