Stupide domande di intervista Javascript

Dec 11 2022
Non sono contrario direttamente alle questioni tecniche. Penso che sia uno dei modi per farsi un'idea delle capacità tecniche del candidato.

Non sono contrario direttamente alle questioni tecniche. Penso che sia uno dei modi per farsi un'idea delle capacità tecniche del candidato. Preferisco piuttosto una discussione tecnica a un rigoroso colloquio tecnico. Ma lascia che ti spieghi una delle peggiori domande di Javascript oggi e perché.

Elenco collegato singolarmente

Prima di iniziare a descrivere il mio punto, scaviamo un po' nella storia di Javascript

Correva l'anno 1995 , sviluppato da Netscape (Brendan Eich), in seguito Mozilla continuò a migliorare e sviluppare javascript. L'idea alla base di javascript era quella di creare una sorta di dinamica durante la navigazione nel mondo online. È stato utilizzato per alcuni avvisi o animazioni molto semplici. Javascript è stato progettato per avere l'aspetto di Java, ma per essere più facile da usare per i non programmatori. A quel tempo non c'era nemmeno AJAX -> Javascript non era usato per richieste e simili.

Intorno al 1997 Javascript entra a far parte degli standard ECMA.

Nel 2005 abbiamo avuto la prima versione ufficiale di AJAX -> questo è il punto in cui è iniziato lo sviluppo web di oggi. Non era più necessario aggiornare la pagina per poter ricaricare i dati. Immagina di essere improvvisamente in grado di creare una sorta di app web. Ma la domanda è: Javascript era pronto per questo? Beh, non proprio. Gli sviluppatori si sono rapidamente abituati a utilizzare cose come IIFEE :

(function() {
// Code that runs in your function
var name = 'John Doe'
}
)()
console.log(name) // error as the name is not defined in this scope

IIFEE era fondamentalmente dal punto di vista odierno una soluzione hacky per poter creare un'app complessa con più file .js . Avevamo bisogno di questo tipo di soluzione perché altrimenti avremmo avuto un conflitto nella denominazione di variabili , funzioni , ecc., poiché Javascript era un linguaggio strettamente funzionale senza classi.

VAR e il sollevamento -> Il sollevamento è un comportamento di spostamento delle dichiarazioni verso l'alto. E in javascript, la variabile può essere utilizzata prima che venga dichiarata. Questo è uno scenario valido:

myVariable = ‘is this shit possible?’
var myVariable;
console.log(myVariable); // is this shit possible?

In questo esempio la variabile myVariable è stata spostata in alto e inizializzata allo stesso tempo, questo è il motivo per cui alla riga 3 la variabile memorizza già la stringa.

E c'erano molte più cose e problemi del genere. Per non dimenticare le parti strane di javascript, che puoi trovare qui:https://hackernoon.com/the-weird-parts-of-javascript-zxo34i8

Ma qualcosa è cambiato con Javascript dalla versione es6

Se torniamo al nostro esempio di sollevamento con il nuovo approccio:

myVariable = ‘is this shit possible?’
let myVariable;
console.log(myVariable); // undefined

Javascript sta ancora mettendo la dichiarazione della variabile in alto, ma non l'inizializzazione. Quindi la nostra console scriverà una variabile indefinita invece della stringa.

Inoltre con la versione es6 abbiamo:

  • Funzioni freccia
  • Classi
  • Moduli
  • Promesse
  • Generatori
  • dichiarazioni let e const per le variabili
  • Operatori di Spread e Rest
  • Letterali modello
  • Destrutturante
  • E altro ancora

Quali sono allora le domande sbagliate dell'intervista?

Era necessario mostrare almeno alcuni di quegli esempi prima che potessi iniziare a trarre il mio punto.

Immagina di essere un nuovo sviluppatore e di iniziare a imparare Javascript. Non è davvero necessario che tu capisca:

  • Var
  • IIFEE
  • Chiusure
  • Promesse e loro utilizzo (ma è bene saperlo)

Ma non è assolutamente necessario verificare la conoscenza della versione precedente di Javascript. Il vecchio Javascript è stato creato per uno scopo diverso da quello utilizzato oggi.

In conclusione , possiamo dire che: Certo, Javascript ha ancora i suoi punti deboli. Ma se sai come usarlo, scriverai Javascript vaniglia solo per piccoli siti Web Html o app più piccole. Altrimenti, ogni sviluppatore sano di mente utilizzerebbe Typescript.