My top 3 (as mainly JS dev) would be:
- Number overflow. It happens when you're backend send big number ID serialized in a JSON. The solution is to wrap the number into a
string
when you know that can happens.
JSON.parse('{"n": 123456789123456789012.0}').n
// => 123456789123456800000
- Mutating an Object by ref (now I use
Object.freeze
a lot). Something like:
const CONFIGURATION = { conf: { enabled: false } }
// setup a "copy"
let currentConfiguration = { ...CONFIGURATION }
currentConfiguration.conf.enabled = true
// try to reset the conf
currentConfiguration = { ...CONFIGURATION }
// => { conf: { enabled: true } }
- Assignation instead of comparison (now my IDE warn me)
if (foo = false) {
// do something
}
I don't get why the RFC show an example returning 403 with body "You do not have enough credit." although there is a dedicated status code " 402 Payment Required". Isn't more correct to use 402 in this situation?