Preguntas y respuestas frecuentes de la entrevista de JavaScript

Publicado: 2023-01-13

Tener JavaScript en su cartera aumenta las posibilidades de obtener un rol de desarrollador de software. Dicho esto, echemos un vistazo a las preguntas frecuentes de la entrevista de JavaScript.

JavaScript es uno de los lenguajes más utilizados en el desarrollo web. Ahora se usa para desarrollar casi cualquier tipo de aplicación.

Antes de saltar a las preguntas de la entrevista, veamos las ventajas de aprender JavaScript.

JavaScript

JavaScript es un lenguaje de programación ligero, interpretado o compilado justo a tiempo. Es uno de los lenguajes centrales de la red mundial. Conoce los otros dos lenguajes principales de www. Será mejor que los busques si no lo haces.

JavaScript se crea principalmente para la web. Pero no es sólo para la web ahora. Con la ayuda de entornos como Node, Deno , etc., podemos ejecutarlo en casi cualquier plataforma.

Veamos algunas de sus ventajas.

Ventajas de JavaScript

  1. Fácil de empezar. Puedes aprenderlo incluso sin ningún conocimiento de codificación.
  2. Gran comunidad a su alrededor. Obtendrá toda la ayuda que desee si está atascado en cualquier lugar.
  3. Hay muchas bibliotecas/marcos creados con JavaScript, lo que ayuda a desarrollar aplicaciones más rápido.
  4. Podemos desarrollar aplicaciones frontend, backend, android, iOS, etc., con JavaScript. Podemos crear casi cualquier tipo de aplicación con él. Pero, es más robusto en el desarrollo web.

¿Cuáles son los tipos de datos en JavaScript?

Los tipos de datos se utilizan para almacenar diferentes tipos de datos. Los tipos de datos diferirán de un lenguaje de programación a otro. En JavaScript, tenemos 8 tipos de datos. Vamos a verlos uno por uno.

  • Número
  • Cuerda
  • booleano
  • Indefinido
  • Nulo
  • Empezando
  • Símbolo
  • Objeto

Todos los tipos de datos, excepto Objeto , se denominan valores primitivos. Y son inmutables.

¿Cuáles son los métodos incorporados en JavaScript?

Los métodos incorporados en JavaScript son diferentes para cada tipo de datos. Podemos acceder a estos métodos incorporados usando el tipo de datos respectivo. Veamos algunos métodos incorporados para diferentes tipos de datos y estructuras de datos.

  1. Número
    • aFijo
    • Encadenar
  2. Cuerda
    • aLowerCase
    • comienza con
    • gráfico en
  3. Formación
    • filtrar
    • mapa
    • para cada

Hay muchos métodos integrados para cada tipo de datos. Puede consultar las referencias de todos los métodos integrados de diferentes tipos de datos y estructuras de datos.

¿Cómo crear una matriz en JavaScript?

Las matrices son una de las estructuras de datos centrales en JavaScript. Las matrices pueden tener cualquier tipo de datos, ya que JavaScript es dinámico. Veamos cómo crear arreglos en JavaScript.

Podemos crear una matriz usando corchetes [] . Es sencillo y rápido crear objetos.

 // Empty array const arr = []; // Array with some random values const randomArr = [1, "One", true]; console.log(arr, randomArr);

Podemos crear una matriz usando Array constructor. La gente rara vez usa el constructor para crear arreglos en proyectos generales.

 // Empty array const arr = new Array(); // Array with some random values const randomArr = new Array(1, "One", true); console.log(arr, randomArr);

Las matrices de JavaScript son mutables, es decir, podemos modificarlas como queramos después de crearlas.

¿Cómo crear un objeto en JavaScript?

Además de la matriz, el objeto es otra estructura de datos central en JavaScript. Los objetos están utilizando almacenar los pares clave-valor. La clave debe ser un valor inmutable, mientras que el valor puede ser cualquier cosa. Veamos cómo crear objetos en JavaScript.

Podemos crear objetos usando corchetes {} . Es sencillo y rápido crear objetos.

 // Empty object const object = {}; // Object with some random values const randomObject = { 1: 2, one: "Two", true: false }; console.log(object, randomObject);

Podemos crear objetos usando el constructor de Object . La gente rara vez usa esto en proyectos generales.

 // Empty object const object = new Object(); // Object with some random values const randomObject = new Object(); randomObject[1] = 2; randomObject["one"] = "Two"; randomObject[true] = false; console.log(object, randomObject);

Los objetos de JavaScript son mutables, es decir, podemos modificarlos después de crearlos, como se ve en el segundo ejemplo.

¿Cómo se depura el código JavaScript?

El código de depuración no es sencillo. Y es diferente de un lenguaje de programación a otro, de un proyecto a otro, etc.; veamos las cosas comunes que se usan para depurar JavaScript.

#1. Inicio sesión

Podemos usar las declaraciones de console.log en varios lugares de nuestro código para identificar el error. El código dejará de ejecutar las siguientes líneas de código cuando haya un error en la línea anterior.

El registro es uno de los viejos métodos de depuración, que es bastante efectivo para proyectos pequeños. Es una técnica de depuración común para cualquier lenguaje de programación.

#2. Herramientas de desarrollo

JavaScript se utiliza principalmente para desarrollar aplicaciones web. Por lo tanto, casi todos los navegadores ahora tienen herramientas para desarrolladores que ayudan a depurar el código JavaScript.

Uno de los métodos de depuración más utilizados es establecer puntos de interrupción en las herramientas de desarrollo. Los puntos de interrupción detienen la ejecución de JavaScript y brindan toda la información sobre la ejecución en este momento.

Podemos establecer múltiples puntos de interrupción alrededor del lugar donde estamos recibiendo errores y ver qué los está causando. Es la forma más efectiva de depurar aplicaciones web de JavaScript.

#3. IDE

Podemos usar los IDE para depurar JavaScript. VS Code admite la depuración con puntos de interrupción. La función de depuración puede diferir según el IDE que esté utilizando. Pero, la mayoría de los IDE tendrán esa característica.

¿Cómo agregar código JavaScript en un archivo HTML?

Podemos agregar el archivo HTML de JavaScript usando la etiqueta de script . Puedes comprobar el ejemplo a continuación.

 <!DOCTYPE html> <html lang="en"> <head> <title>Geekflare</title> </head> <body> <h1>Geekflare</h1> <script> // JavaScript code goes here console.log("This is JavaScript code"); </script> </body> </html>

¿Qué son las galletas?

Las cookies son pares clave-valor que se utilizan para almacenar información pequeña. La información puede ser cualquier cosa. Podemos establecer el tiempo de caducidad de las cookies, que se eliminarán después de su tiempo de caducidad. Estos son ampliamente utilizados para almacenar la información de los usuarios.

Las cookies no se borrarán aunque actualicemos la página hasta que las eliminemos o caduquen. Puede verificar las cookies de cualquier aplicación web/página web en cualquier navegador abriendo las herramientas para desarrolladores.

¿Cómo leer una cookie?

Podemos leer la cookie en JavaScript usando document.cookie . Devolverá todas las cookies que creamos.

 console.log("All cookies", document.cookie);

Devolverá una cadena vacía si no hay cookies.

¿Cómo crear y eliminar una cookie?

Podemos crear las cookies configurando el par clave-valor en document.cookie . Veamos un ejemplo.

 document.cookie = "one=One;";

En la sintaxis anterior, la clave de one cookie y One es su valor. Podemos agregar más atributos a la cookie como dominio, ruta, expira, etc.; cada uno de ellos debe estar separado por un punto y coma (;) . Todos los atributos son opcionales.

Veamos un ejemplo con atributos.

 document.cookie = "one=One;expires=Jan 31 2023;path=/;";

En el código anterior, hemos agregado una fecha de vencimiento y una ruta a la cookie. Si no se proporciona la fecha de caducidad, la cookie se eliminará después de la sesión. La ruta predeterminada será la ruta del archivo. El formato de la fecha de caducidad debe estar en GMT.

Veamos cómo crear varias cookies.

 document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "two=Two;expires=Jan 31 2023;path=/;"; document.cookie = "three=Three;expires=Jan 31 2023;path=/;";

Las cookies no se sobrescribirán si la clave o la ruta son diferentes al configurar varias cookies. Si la clave y la ruta son las mismas, sobrescribirá la cookie anterior. Consulte el siguiente ejemplo, que sobrescribirá la cookie establecida anteriormente.

 document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "one=Two;path=/;";

Hemos eliminado la fecha de caducidad de la cookie y hemos cambiado el valor.

Utilice la fecha de caducidad en una fecha futura cuando esté probando el código para que funcione correctamente. Si mantiene la misma fecha del 31 de enero de 2023 incluso después del 31 de enero de 2023 , no se crearán cookies.

Hemos visto cómo crear y actualizar cookies. Veamos cómo eliminar las cookies.

Eliminar las cookies es fácil. Simplemente cambie la fecha de caducidad de la cookie a cualquier fecha pasada. Compruebe el ejemplo a continuación.

 // Creating cookies document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "two=Two;expires=Jan 31 2023;path=/;"; document.cookie = "three=Three;expires=Jan 31 2023;path=/;"; // Deleting the last cookie document.cookie = "three=Three;expires=Jan 1 2023;path=/;";

No encontrará la última cookie en las cookies ya que se elimina en la última línea del código. Eso es todo por el tutorial de cookies min.

¿Cuáles son los diferentes marcos de JavaScript?

Hay muchos marcos de JavaScript por ahí. React, Vue, Angular, etc., para el desarrollo de UI. Express, Koa, Nest, etc., para el desarrollo del lado del servidor. NextJS, Gatsby, etc., para la generación de sitios estáticos. React Native, Ionic, etc., para el desarrollo de aplicaciones móviles. Hemos mencionado algunos de los marcos de JavaScript aquí. Puede encontrar más marcos que llevará mucho tiempo explorar. Explora cuando los necesites.

Cierres en JavaScript

Un cierre es una función agrupada con su alcance léxico y su entorno léxico principal. Con los cierres, podemos acceder a los datos del alcance externo. Los cierres se forman cuando se crean las funciones.

 function outer() { const a = 1; function inner() { // We can access all the data from the outer function scope here // The data will be available even if we execute this function outside the outer function // as inners' closure formed while creating it console.log("Accessing a inside inner", a); } return inner; } const innerFn = outer(); innerFn();

Los cierres son ampliamente utilizados en aplicaciones de JavaScript. Es posible que los hayas usado antes sin darte cuenta de que son cierres. Hay mucho más que esto para aprender acerca de los cierres. Asegúrese de haber aprendido este concepto por completo.

Izar en JavaScript

Hoisting es un proceso en JavaScript donde la declaración de variables, funciones y clases se mueve a la parte superior del alcance antes de ejecutar el código.

 // Accessing `name` before declaring console.log(name); // Declaring and initializing the `name` var name = "Geekflare";

Si ejecuta el código anterior, no verá ningún error. Pero en la mayoría de los idiomas, obtendrá el error. La salida no estará undefined ya que el levantamiento solo mueve las declaraciones a la parte superior y no lo inicializará hasta la línea número 3.

Cambie la var a let o const de la siguiente manera y ejecute el código nuevamente.

 // Accessing `name` before declaring console.log(name); // Declaring and initializing the `name` const name = "Geekflare";

Ahora, obtendrá el error de referencia que dice que no podemos acceder a la variable antes de inicializarla.

 ReferenceError: Cannot access 'name' before initialization

Entonces, aquí let y const se introducen en ES6, a los que no se puede acceder antes de inicializar, como sugiere el error. Esto se debe a que las variables declaradas con let o const estarán en Zona Muerta Temporal (TDZ) hasta que se inicialice la línea. No podemos acceder a las variables desde TDZ.

Curry en JavaScript

Currying es una técnica para convertir funciones con muchos parámetros en menos parámetros con múltiples llamadas. Con él, podemos convertir una función invocable add(a, b, c, d) en add(a)(b)(c)(d) invocable. Veamos un ejemplo de cómo hacerlo.

 function getCurryCallback(callback) { return function (a) { return function (b) { return function (c) { return function (d) { return callback(a, b, c, d); }; }; }; }; } function add(a, b, c, d) { return a + b + c + d; } const curriedAdd = getCurryCallback(add); // Calling the curriedAdd console.log(curriedAdd(1)(2)(3)(4));

Podemos generalizar getCurryCallback , la función que se usará para diferentes funciones para convertir en invocables de curry. Puede consultar Información de JavaScript para obtener más detalles al respecto.

Diferencia entre documento y ventana.

La window es el objeto superior en el navegador. Contiene toda la información sobre la ventana del navegador, como historial, ubicación, navegador, etc.; está disponible globalmente en JavaScript. Podemos usarlo directamente en nuestro código sin ninguna importación. Podemos acceder a las propiedades y métodos del objeto window sin window.

El document es la parte del objeto window . Todo el HTML cargado en la página web se convierte en el objeto de documento. El objeto del documento se refiere al elemento especial HTMLDocument, que tendrá diferentes propiedades y métodos como todos los elementos HTML.

La window el objeto representa la ventana del navegador y el document representa el documento HTML cargado en esa ventana del navegador.

Diferencia entre el lado del cliente y el lado del servidor

El lado del cliente se refiere al usuario final que usa la aplicación. El lado del servidor se refiere al servidor web donde se implementa la aplicación.

En la terminología de interfaz, podemos decir navegador en las computadoras de los usuarios como lado del cliente y servicios en la nube como lado del servidor.

Diferencia entre HTML interno y texto interno

Tanto innerHTML como innerText son propiedades de elementos HTML. Podemos cambiar el contenido de un elemento HTML usando estas propiedades.

Podemos asignar la cadena HTML a innerHTML como una propiedad representada como HTML normal. Compruebe el siguiente ejemplo.

 const titleEl = document.getElementById("title"); titleEl.innerHTML = '<span style="color:orange;">Geekflare</span>';

Agregue un elemento con el title de identificación a su HTML y agregue el script anterior al archivo JavaScript. Ejecute el código y vea el resultado. Vas a Geekflare en color naranja. Y si inspecciona el elemento, estará dentro de la etiqueta span . Por lo tanto, innerHTML tomará la cadena HTML y la representará como HTML normal.

El innerText del otro lado tomará una cadena normal y la representará tal como es. No representará ningún HTML como innerHTML . Cambie el innerHTML interno a innerText en el código anterior y verifique la salida.

 const titleEl = document.getElementById("title"); titleEl.innerText = '<span style="color:orange;">Geekflare</span>';

Ahora, verá la cadena exacta que proporcionamos en la página web.

Diferencia entre let y var

Las palabras clave let y var se utilizan para crear variables en JavaScript. La palabra clave let se introduce en ES6.

let tiene un alcance de bloque y var tiene un alcance de función.

 { let a = 2; console.log("Inside block", a); } console.log("Outside block", a);

Ejecute el código anterior. Obtendrá un error en la última línea, ya que no podemos acceder let a fuera del bloque porque tiene un alcance de bloque. Ahora, cámbielo a var y ejecútelo de nuevo.

 { var a = 2; console.log("Inside block", a); } console.log("Outside block", a);

No obtendrá ningún error ya que también podemos acceder a a variable fuera del bloque. Ahora, reemplacemos el bloque con una función.

 function sample() { var a = 2; console.log("Inside function", a); } sample(); console.log("Outside function", a);

Obtendrá un error de referencia si ejecuta el código anterior, ya que no podemos acceder a var a fuera de la función porque tiene un alcance de función.

Podemos volver a declarar las variables usando la palabra clave var pero no podemos volver a declarar las variables usando la palabra clave let . Veamos un ejemplo.

 var a = "Geekflare"; var a = "Chandan"; console.log(a);
 let a = "Geekflare"; let a = "Chandan"; console.log(a);

El primer fragmento de código no arrojará ningún error y el valor se cambiará a último valor asignado. El segundo fragmento de código arrojará un error ya que no podemos volver a declarar las variables usando let .

Diferencia entre almacenamiento de sesión y almacenamiento local

El almacenamiento de sesión y el almacenamiento local se utilizan para almacenar información en las computadoras de los usuarios a las que se puede acceder sin Internet. Podemos almacenar los pares clave-valor tanto en el almacenamiento de sesión como en el almacenamiento local. Tanto la clave como el valor se convertirán en cadenas si proporciona cualquier otro tipo de datos o estructura de datos.

El almacenamiento de la sesión se borrará después de que finalice la sesión (cuando se cierre el navegador). El almacenamiento de ubicación no se borrará hasta que lo borre.

Podemos acceder, actualizar y eliminar el almacenamiento de sesión y el almacenamiento de ubicación con los objetos sessionStorage y localStorage respectivamente.

¿Qué es NaN en JavaScript?

El NaN se abrevia como Not-a-Number . Representa que algo no es un número legal/válido en JavaScript. Hay algunos casos en los que obtendremos NaN como salida como 0/0 , undefined * 2 , 1 + undefined , null * undefined , etc.

¿Qué es el alcance léxico?

El alcance léxico se refiere a acceder a las variables desde el alcance de sus padres. Digamos que tenemos una función con dos funciones internas. La función más interna puede acceder a las variables de alcance de sus dos funciones principales. De manera similar, la función de segundo nivel puede acceder al alcance de la función más externa. Veámoslo en un ejemplo.

 function outermost() { let a = 1; console.log(a); function middle() { let b = 2; // `a` are accessible here console.log(a, b); function innermost() { let c = 3; // both `a` and `b` are accessible here console.log(a, b, c); } innermost(); } middle(); } outermost();

JavaScript usa una cadena de alcance para encontrar la variable cuando accedemos a ella en algún lugar del código. Primero, verificará la variable en el alcance actual y luego el alcance principal hasta el alcance global.

¿Qué se pasa por valor y se pasa por referencia?

El paso por valor y el paso por referencia son dos formas de pasar los argumentos a una función en JavaScript.

Pasar por valor: crea una copia de los datos originales y se los pasa a la función. Entonces, cuando hagamos cambios en la función, no afectará los datos originales. Compruebe el siguiente ejemplo.

 function sample(a) { // changing the value of `a` a = 5; console.log("Inside function", a); } let a = 3; sample(a); console.log("Outside function", a);

Verás que el valor original de a no cambia aunque lo cambiamos dentro de la función.

Pasar por referencia: pasa la referencia de los datos a la función. Entonces, cuando realizamos cambios en la función, también cambiará los datos originales.

 function sample(arr) { // adding a new value to the array arr.push(3); console.log("Inside function", arr); } let arr = [1, 2]; sample(arr); console.log("Outside function", arr);

Verás que el valor original del arr cambia cuando lo cambiamos dentro de la función.

Nota: todos los tipos de datos primitivos se pasan por valor y los no primitivos se pasan por referencia.

¿Qué es la memorización?

La memorización es una técnica que almacena los valores calculados en cachés y los usa cuando los necesitamos nuevamente sin volver a computarlos. Acelerará la ejecución del código si el cálculo es muy pesado. Hay una compensación de almacenamiento que no es un gran problema en comparación con el tiempo.

 const memo = {}; function add(a, b) { const key = `${a}-${b}`; // checking whether we computed the value already or not if (memo[key]) { console.log("Not computing again"); return memo[key]; } // adding the newly computed value to cache // here cache is a simple global object memo[key] = a + b; return memo[key]; } console.log(add(1, 2)); console.log(add(2, 3)); console.log(add(1, 2));

Es un ejemplo simple que demuestra la memorización. Aquí, sumar dos números no es un cálculo pesado. Es solo para la demostración.

¿Cuál es el parámetro de descanso?

El parámetro rest se usa para recopilar todos los parámetros restantes en una función. Digamos que tenemos una función que aceptará un mínimo de 2 argumentos y puede aceptar cualquier número de parámetros como máximo. Como no tenemos el número máximo de argumentos, podemos recolectar los primeros 2 parámetros con variables normales y todos los demás con el resto de parámetros usando el operador resto .

 function sample(a, b, ...rest) { console.log("Rest parameter", rest); } sample(1, 2, 3, 4, 5);

El parámetro resto será una matriz de los últimos tres argumentos en el ejemplo anterior. Con esto, podemos tener cualquier número de parámetros para una función.

Una función solo puede tener un parámetro de reposo. Y el parámetro resto debe ser el último en el orden de los parámetros.

¿Qué es la desestructuración de objetos?

La desestructuración de objetos se utiliza para acceder a las variables del objeto y asignarlas a variables con los mismos nombres que las claves de objeto. Veamos un ejemplo.

 const object = { a: 1, b: 2, c: 3 }; // Object destructuring const { a, b, c } = object; // Now, a, b, c will be used as normal variables console.log(a, b, c);

Podemos cambiar las variables de variables desestructuradas en la misma línea de la siguiente manera.

 const object = { a: 1, b: 2, c: 3 }; // Changing the names of `a` and `b` const { a: changedA, b: changedB, c } = object; // Now, changedA, changedB, c will be used as normal variables console.log(changedA, changedB, c);

¿Qué es la desestructuración de matrices?

La desestructuración de matrices se utiliza para acceder a las variables de la matriz y asignarlas a las variables. Veamos un ejemplo.

 const array = [1, 2, 3]; // Array destructuring // It's based on the index of the array const [a, b, c] = array; // Now, we can use a, b, c as normal variables console.log(a, b, c);

¿Qué son la captura de eventos y el burbujeo de eventos?

La captura de eventos y el burbujeo de eventos son dos formas de propagación de eventos en HTML DOM. Digamos que hay dos elementos HTML, uno dentro de otro. Y ocurre un evento en el elemento interior. Ahora, el modo de propagación de eventos decidirá el orden de ejecución de estos eventos.

Burbujeo de eventos: primero ejecuta el controlador de eventos en el elemento, luego en su elemento y luego sube hasta el elemento superior. Este es el comportamiento predeterminado de todos los eventos.

Captura de eventos: necesitamos especificar en el evento que necesitamos usar este tipo de propagación de eventos. Podemos especificarlo mientras agregamos el detector de eventos. Los eventos se ejecutarán en el siguiente orden si tenemos habilitada la captura de eventos.

  1. Los eventos comienzan a ejecutarse desde el elemento superior hasta el elemento de destino hacia abajo.
  2. El evento en el elemento de destino se ejecutará nuevamente.
  3. La propagación del evento burbujeante volverá a ocurrir hasta que el elemento superior esté activo.

Podemos detener la propagación de eventos llamando a event.stopPropogation un método en el controlador de eventos.

¿Qué son las Promesas en JavaScript?

El objeto Promise se usa para las operaciones asincrónicas que se completarán en el futuro con un estado de éxito o falla.

Una Promise puede estar en uno de los siguientes estados.

  1. pending : cuando la operación aún está en curso.
  2. fulfilled : cuando la operación se completa con éxito. Tendremos resultados (si los hay) en el estado de éxito.
  3. rejected : cuando la operación se completa con un error. Tendremos la razón (error) por la cual falló.

Veamos dos ejemplos de casos de éxito y fracaso.

 // Promise which will complete successfully const successPromise = new Promise((resolve, reject) => { setTimeout(() => { resolve({ message: "Completed successfully" }); }, 300); }); successPromise .then((data) => { console.log(data); }) .catch((error) => { console.log(error); }); // Promise which will complete with failure state const failurePromise = new Promise((resolve, reject) => { setTimeout(() => { reject(new Error("Failing the promise for testing")); }, 300); }); failurePromise .then((data) => { console.log(data); }) .catch((error) => { console.log(error); });

Puede tener más de uno then encadenar si es necesario. Los datos devueltos anteriormente then aceptarán en la próxima devolución de llamada.

Explicar los diferentes tipos de ámbito en JavaScript

Hay dos tipos de ámbito en JavaScript. El alcance global y el alcance local .

Es posible que también haya oído hablar del alcance de la función y del alcance del bloque. Son ámbitos locales para var y let , const respectivamente.

¿Qué son las funciones de autoinvocación?

Las funciones de autoinvocación son funciones sin nombre que se ejecutarán inmediatamente después de la creación. Veamos algunos ejemplos.

 // Without any parameters (function sayHello() { console.log("Hello, World!"); })(); // With parameters (function add(a, b) { console.log("Sum", a + b); })(1, 2);

Incluso podemos pasar los argumentos a las funciones de autoinvocación como has visto en el ejemplo.

¿Qué son las funciones de flecha?

La función de flecha es azúcar sintáctica a la función normal con algunos cambios. Se comportan como funciones normales en casos de uso general. Las funciones de flecha son útiles cuando tenemos que tener devoluciones de llamada. Veamos su sintaxis.

 // arrow functions will return by default if it doesn't have any brackets let add = (a, b) => a + b; console.log(add(1, 2));

Existen algunas diferencias entre las funciones de flecha y las funciones normales.

  • Las funciones de flecha no tienen su propio enlace this . La palabra clave this dentro de la función de flecha se refiere a su ámbito principal this .
  • Las funciones de flecha no se pueden usar como funciones de constructor

¿Qué son las devoluciones de llamada?

Una devolución de llamada es una función que se pasa a otra función que se invoca dentro de esa función. El uso de devoluciones de llamada es algo común en JavaScript. Veamos un ejemplo.

 function sample(a, b, callback) { const result = a + b; callback(result); } function finished(result) { console.log("Finished with", result); } sample(1, 2, finished);

La función finished se pasa como una devolución de llamada a la sample . La función finished se invoca con el resultado después de realizar alguna acción. Verá el uso de devoluciones de llamada principalmente en operaciones asincrónicas como promesas, setTimeout, etc.

¿Cuáles son los diferentes tipos de errores?

Veamos algunos errores en JavaScript.

ReferenceError : este error se producirá si la variable a la que estamos accediendo está disponible.

TypeError: JavaScript arrojará este error si el error no coincide con otros tipos de errores. También ocurrirá cuando intentemos realizar una acción que no sea compatible con los datos.

SyntaxError: este error ocurrirá si la sintaxis de JavaScript no es correcta.

Hay algunos otros tipos de errores también. Pero estos son los tipos de error comunes en JavaScript.

¿Cuáles son los diferentes alcances de las variables en JavaScript?

Hay dos ámbitos de variables en JavaScript. Las variables declaradas con la palabra clave var tendrán ámbito de función, y las variables declaradas con let y const tendrán ámbito de bloque .

Consulte la pregunta 17 para obtener más detalles sobre el alcance de estas variables.

¿Qué son los caracteres de escape en JavaScript?

La barra invertida es el carácter de escape en JavaScript. Se utiliza para imprimir algunos caracteres especiales que no podemos imprimir en general. Digamos que queremos imprimir un apostrophe (') dentro de una cadena, lo que normalmente no podemos hacer ya que la cadena terminará en el segundo apóstrofe. En ese caso, usaremos el carácter de escape para evitar terminar la cadena en ese punto.

 const message = 'Hi, I\'m Geekflare'; console.log(message);

Podemos lograr el resultado anterior sin usar el carácter de escape reemplazando los apóstrofes simples externos con apóstrofes dobles. Pero es solo un ejemplo de cómo usar un carácter de escape. Hay otros caracteres para los que definitivamente necesitamos un carácter de escape como \n , \t , \\ etc..,

¿Qué son BOM y DOM?

Modelo de objetos del navegador (BOM): todos los navegadores tienen BOM que representa la ventana del navegador actual. Contiene nuestro objeto de ventana superior que se utiliza para manipular la ventana del navegador.

Modelo de objetos de documento (DOM): los navegadores crean el DOM cuando el HTML se carga en la estructura de árbol. Podemos manipular los elementos HTML usando la API DOM.

¿Qué es un objeto de pantalla?

El objeto de pantalla es una de las propiedades del objeto de ventana global. Contiene diferentes propiedades de la pantalla en la que se representa la ventana actual del navegador. Algunas de las propiedades son ancho , alto , orientación , profundidad de píxel , etc.

Conclusión

Puede haber preguntas de seguimiento para todas las preguntas anteriores. Por lo tanto, debe preparar los conceptos en torno a todas las preguntas anteriores.

También puede explorar algunas preguntas y respuestas frecuentes de entrevistas de Java.

Feliz aprendizaje