C syntax was never that great. It's basically mnemonic PDP-11 assembler with a few added data structures.
js is mutant C with dementia - hacked together over over a fortnight, full of inconsistencies and weird corners.
console.log(1 + "2"); // "12"
console.log(1 - "2"); // -1
console.log(NaN === NaN); // false
console.log(+0 === -0); // true
const obj = {};
console.log(obj.foo); // undefined, not an errorNone of those examples are showing something you find wrong with the syntax
[dead]
NaN is a standardized dynamic languages datatype governed by IEEE 754, this is not something to complain about as its behavior is part of the official standard and for good reason, as outlined in the standard.