When I use delete keyword as a function it returns boolean and if I pass anything it doesn't throw error
const foo = 0
delete(foo) // false
const bar = 1
delete(bar) // false
delete(unknown) // true
delete(5) // true
I don't understand this behaviour so I wanna someone to explain to me why javascript works like that
You may wanna take a look here:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete
The return value is:
true for all cases except when the property is an own non-configurable property, in which case, false is returned in non-strict mode.