Perché "typeof null == object" rimarrà in javascript?

0

Stavo leggendo un articolo sullo sviluppo front-end su Medium, quando mi sono imbattuto in un'informazione interessante, che è la seguente:

The type of a variable can be determined by using the typeof(var_name) function. One thing to note is that typeof(null) returns object. This is a long-standing bug in JS, but one that is likely never going to be fixed. Too much code on the Web relies on the bug and thus fixing it would cause a lot more bugs!

Perché così? Che tipo di bug & affidabilità del codice questa sezione si riferisce a?

Link per l'articolo: link

    
posta demonofthemist 18.05.2018 - 18:38
fonte

1 risposta

2

Rompere le modifiche a JavaScript ha gravi conseguenze. Ci sono milioni di siti là fuori che eseguono codice che potrebbe essere stato scritto anni e anni fa e che probabilmente non verranno mai più toccati.

Questo significa che se cambiamo il modo in cui funziona JavaScript, ma quei siti si basano sul modo in cui funzionava, parti di Internet si interrompono in modo piatto: il codice che le guida non funziona più come previsto.

Inoltre, anche se il comitato degli standard decide di modificare le specifiche di conseguenza, ciò non risolve magicamente questo problema. Ci sono anche i produttori di browser che devono implementare effettivamente le specifiche: il motore V8 di Chrome, il motore SpiderMonkey di Firefox, ecc. Hanno anche un strong incentivo a non rompere cose, poiché, beh, gli utenti passerebbero semplicemente a un browser diverso se il loro non è "Sono in grado di visualizzare i siti a cui vanno più.

Per un argomento correlato, piuttosto recente e leggermente divertente, consulta anche la discussione relativa alla funzione flatMap di JavaScript dovrebbe essere chiamato smoosh , per ragioni molto simili .

    
risposta data 18.05.2018 - 18:53
fonte

Leggi altre domande sui tag