Parte 2: Principali (6–9) Domande frequenti su JavaScript

Jan 30 2023
JavaScript è un linguaggio di programmazione che è diventato una delle competenze più richieste nelle richieste di lavoro. È un linguaggio proteiforme utilizzato per lo sviluppo web, lo sviluppo di app mobili, la programmazione lato server e altro ancora.

JavaScript è un linguaggio di programmazione che è diventato una delle competenze più richieste nelle richieste di lavoro. È un linguaggio proteiforme utilizzato per lo sviluppo web, lo sviluppo di app mobili, la programmazione lato server e altro ancora.

In questo post del blog, tratteremo le prossime 6-9 domande comuni di interviste JavaScript che vengono poste frequentemente nelle interviste specializzate.

Puoi fare riferimento alla prima parte di 5 Domande qui

Parte 1: Principali (1-5) Domande frequenti su JavaScript
Domande Javascript

Domanda 6: Qual è la differenza tra codice sincrono e asincrono?

Il codice sincrono è un tipo di codice eseguito in ordine sequenziale, una riga alla volta. In altre parole, la riga di codice successiva non verrà eseguita finché la riga corrente non avrà terminato l'esecuzione.

Questo tipo di codice viene spesso utilizzato in applicazioni più semplici e più piccole in cui non è necessario che l'applicazione esegua più attività contemporaneamente. Ad esempio, considera il seguente codice sincrono:

function printNumbers() {
  console.log(1);
  console.log(2);
  console.log(3);
}

printNumbers();

Il codice asincrono , invece, consente l'esecuzione simultanea di più funzioni, senza attendere il completamento di una funzione prima di avviare la successiva.

Questo tipo di codice viene spesso utilizzato in applicazioni più grandi e complesse in cui sono presenti più attività che devono essere eseguite contemporaneamente. Ad esempio, considera il seguente codice asincrono:

async function printNumbers() {
  console.log(1);
  setTimeout(() => {
    console.log(2);
  }, 1000);
  console.log(3);
}

printNumbers();

La differenza principale tra codice sincrono e asincrono è l'ordine in cui il codice viene eseguito e l'impatto che ha sulla capacità dell'applicazione di eseguire altre attività durante l'attesa del completamento di un'attività specifica.

Il codice sincrono bloccherà l'esecuzione del resto del codice fino al termine dell'attività corrente, mentre il codice asincrono consente l'esecuzione simultanea di più attività, migliorando l'efficienza complessiva dell'applicazione.

Domanda 7: Qual è la differenza tra pass-by-value e pass-by-reference in JavaScript?

In JavaScript, ci sono due modi per passare argomenti a una funzione: passare per valore e passare per riferimento.

Passare per valore significa che quando una variabile viene passata come argomento a una funzione, una copia del suo valore viene creata e passata alla funzione.

Eventuali modifiche apportate all'argomento all'interno della funzione non influiranno sulla variabile originale all'esterno della funzione. Per esempio:

let x = 5;

function changeValue(y) {
  y = 10;
}

changeValue(x);
console.log(x); // Output: 5

Passare per riferimento, d'altra parte, significa che quando un oggetto viene passato come argomento a una funzione, viene passato un riferimento all'oggetto, non una copia del suo valore.

Ciò significa che qualsiasi modifica apportata all'oggetto all'interno della funzione influenzerà l'oggetto originale al di fuori della funzione. Per esempio:

let obj = {value: 5};

function changeValue(y) {
  y.value = 10;
}

changeValue(obj);
console.log(obj.value); // Output: 10

È importante comprendere la differenza tra passare per valore e passare per riferimento in JavaScript, in quanto può avere un impatto significativo sul comportamento del codice.

Quando si lavora con tipi di dati primitivi come numeri e stringhe, viene utilizzato il passaggio per valore, ma quando si lavora con gli oggetti, viene utilizzato il passaggio per riferimento.

Domanda 8: Qual è l'uso della "modalità rigorosa" in JavaScript e come si abilita?

La modalità Strict è una funzionalità di JavaScript che fornisce un ambiente di esecuzione più sicuro e protetto per il tuo codice. Ti aiuta a scrivere codice migliore e più pulito applicando regole altrimenti facoltative nella normale esecuzione di JavaScript.

Ad esempio, la modalità rigorosa non consente l'uso di variabili non dichiarate, che possono aiutare a prevenire globali accidentali e altri problemi relativi alle variabili. Impedisce inoltre la modifica accidentale delle proprietà di sola lettura, come l' argumentsoggetto, ed elimina l'uso di alcune funzionalità obsolete, come l' withistruzione.

Per abilitare la modalità rigorosa in JavaScript, puoi aggiungere la seguente riga nella parte superiore dello script o della funzione:

"use strict";

(function () {
  "use strict";
  // Your code here
})();

In conclusione, l'utilizzo della modalità rigorosa in JavaScript è facoltativo, ma è altamente raccomandato per migliorare la qualità complessiva e la sicurezza del codice. Usando la modalità rigorosa, puoi rilevare potenziali errori in anticipo, evitare insidie ​​comuni e scrivere codice più gestibile e scalabile.

Domanda 9: Quali sono i modi per ottimizzare le prestazioni del codice JavaScript?

Esistono diversi modi per ottimizzare le prestazioni del codice JavaScript e alcuni dei metodi più comuni sono:

  1. Minimizzare il codice: Minimizzare il codice significa rimuovere tutti i caratteri non necessari, come spazi bianchi e commenti, e accorciare i nomi delle variabili, per ridurre le dimensioni del codice. Una dimensione del codice più piccola significa meno dati da trasferire, il che può comportare tempi di caricamento più rapidi.
  2. Utilizzo della memorizzazione nella cache: memorizzando nella cache i dati utilizzati di frequente, è possibile evitare calcoli ridondanti e velocizzare il codice. Puoi memorizzare nella cache i dati nelle variabili locali o nella cache del browser.
  3. Evita di bloccare il thread principale: JavaScript è un linguaggio a thread singolo, il che significa che può eseguire solo una cosa alla volta. Se hai un'attività di lunga durata, bloccherà il thread principale, causando la mancata risposta della pagina. Per evitare ciò, puoi utilizzare tecniche di programmazione asincrone, come callback o promesse, per scaricare l'attività a esecuzione prolungata su un thread di lavoro.
  4. Evita di usare variabili globali: le variabili globali possono rallentare il tuo codice perché sono accessibili da qualsiasi parte del codice e possono causare collisioni con altre variabili con lo stesso nome. Usa invece le variabili locali all'interno delle funzioni, che sono più veloci e meno soggette a collisioni.
  5. Utilizza il caricamento lento: il caricamento lento è una tecnica per caricare solo il contenuto necessario e non l'intera pagina in una volta. In questo modo, è possibile ridurre la quantità di dati che devono essere trasferiti ed elaborati, con tempi di caricamento più rapidi.
  6. Utilizzare strutture di dati adeguate: la scelta della struttura di dati corretta per il codice può avere un impatto significativo sulle prestazioni. Ad esempio, l'utilizzo di un array per la ricerca, l'ordinamento e la manipolazione di insiemi di dati di grandi dimensioni può essere lento mentre l'utilizzo di un oggetto o di una mappa può essere molto più rapido.
  7. Profilazione: la profilazione del tuo codice ti aiuta a identificare i colli di bottiglia e a ottimizzare le prestazioni del tuo codice. Puoi utilizzare DevTools nel tuo browser per profilare il tuo codice e trovare le aree che necessitano di miglioramenti.

// Minifying the code
const name = "John Doe";
console.log("Hello, " + name);

// Becomes:
const n="John Doe";console.log("Hello, "+n);

// Using caching
const myArray = [1, 2, 3, 4, 5];
function sumArray(array) {
  let sum = 0;
  for (let i = 0; i < array.length; i++) {
    sum += array[i];
  }
  return sum;
}

let sum = sumArray(myArray);
console.log(sum);

// Using proper data structures
const data = [1, 2, 3, 4, 5];

let sum = 0;
for (let i = 0; i < data.length; i++) {
  sum += data[i];
}
console.log(sum);

// Becomes:
const data = new Map([[1, 1], [2, 2], [3, 3], [4, 4], [5, 5]]);

let sum = 0;
for (const value of data.values()) {
  sum += value;
}
console.log(sum);

<=====>

Se sei interessato a saperne di più sulla codifica in Javascript, assicurati di seguirmi per ulteriori frammenti di codice ed esempi. Condividerò preziose informazioni e suggerimenti su come padroneggiare la lingua e migliorare le tue capacità di sviluppatore. Quindi, resta sintonizzato per ulteriori aggiornamenti e continuiamo a imparare insieme.

Grazie per aver letto. Buon apprendimento

Sostieni la nostra pubblicazione seguendola

Integrazione Splunk con SpringBoot Parte — 1 Il click jacking e le sue misure preventive Auto-miglioramento: un viaggio di crescita personale Integrazione Splunk con SpringBoot — Parte 2 2023 Tendenze React JS per guardare gli imprenditori moderni passare alla codifica a propano : invertire l'ordine delle parole in un Stringa in Javascript Conversioni e promozioni nell'integrazione di Java Splunk con SpringBoot — Parte finale