Bene, supponendo che tu sia realmente interessato all'apprendimento di JavaScript, la migliore pratica è questa: preferisci test per assenza / esistenza di metodi e funzioni di normalizzazione della scrittura. Quindi un esempio totalmente zoppo, ma colpisce tre principi:
if(!document.getElementsByClassName){
document.getByClass = function(){ //look at all elements, check for class etc...
}
else { document.getByClass = document.getElementsByClassName }
- Non fare il browser sniff.
- Si potrebbe anche eliminare un po 'di DOM cruft mentre si va. Lo scopo dell'API DOM è quello di essere espliciti, per non andare facilmente sul tuo tunnel carpale, se non hai notato quanto sia incredibilmente flessibile JS. Il quasi-elimina-qualsiasi fattore è ciò che rende l'esempio zoppo.
- Cache ad una nuova funzione. Non eseguire il test del metodo ogni volta che viene chiamato.
Il vantaggio è che non puoi mai fidarti al 100% dello sniffing del browser e non sai mai quando un'altra libreria a cui è stato collegato non ha effettivamente aggiunto un metodo equivalente per te.
Che tu stia solo provando a fare qualcosa o voglia saperne di più, consiglio JQuery. Fa un ottimo lavoro per eliminare il cruft delle API DOM e mantenere un alto livello di normalizzazione multipiattaforma, ma è anche qualcosa che puoi imparare molto da studiare sotto il cofano. Ancora più importante, se ti preoccupi di continuare a imparare realmente il JS di base, non diventa inutile come molti altri framework e librerie JS e continuerai a trarre vantaggio dalla possibilità di sgraziare la tua roba JQuery con il tuo pazzo OOP-ish competenze.
Inoltre, controlla quirksmode.org per capire perché Microsoft dovrebbe essere veramente disprezzato per tutti gli IE precedenti a 9 sul fronte JS e molti dettagli nitty su esattamente quanto c'è di sbagliato nella loro API DOM proprietaria e suggerimenti per lavorare intorno ad esso.