¿Que tanto sabes de los entornos léxicos de javascript?

(1/1)

MinusFour:
El objetivo del ejercicio es comprender que es lo que ocurre en cada segmento de código. Todos están relacionados al tema aunque algunos más que otros.

1.
Código
(function test(){ console.log('ok'); })
test();

2.
Código
test()
function test(){ console.log('ok'); }

3.
Código
(function test(t = eval('var t = 1;')){
   console.log(t);
})();

4.
Código
(function test(t = eval('var c = 1;')){
   console.log(c);
   var c = 0;
})();

5.
Código
(function test(){
   x();
   function x(){ console.log(1); };
   function x(){ console.log(2); };
})();

6.
Código
(function test(){
  x();
  function x(){ console.log(1); };
  {
      x();
      function x(){ console.log(2); };
  }
  x();
})();

7.
Código
new class {
   constructor() {
       x();
       function x(){ console.log(1); }
       function x(){ console.log(2); }
   }
}

8.
Código
new class {
   constructor() {
       function x(){ console.log(1); }
       {
           function x(){ console.log(2); }
       }
       x();
   }
}

9.
Código
new class {
   constructor() {
       {
           function x(){ console.log('ok'); }
       }
       x();
   }
}

10.
Código
new class {
   constructor() {
       {
           function x(){ console.log(1); }
           function x(){ console.log(2); }
           x();
       }
   }
}

11.
Código
(function test(c){
  var c;
  console.log('ok');
})();

12.
Código
(function test(c){
  let c;
  console.log('ok');
})();


13.
Código
(function test(){
  var c;
  var c;
  console.log('ok');
})();

14.
Código
(function test(c, c){
  console.log(c);
})(1,2);

15.
Código
(function test(c, c = 2){
  console.log(c);
})(1);

16.
Código
(function test(){
  console.log(arguments);
})();

17.
Código
(() => console.log(arguments))();

18.
Código
(function test(arguments){
  console.log(arguments);
})();

19.
Código
(function test(...c){
  console.log(arguments);
})();

20.
Código
(function test(){
   let arguments;
   console.log(arguments);
})();

21.
Código
(function test(){
  var arguments;
  console.log(arguments);
})();

22.
Código
(function test(){
  var c;
  let c;
})();

23.
Código
(function test(){
  var c;
  {
      let c;
  }
})();

24.
Código
(function test(){
  let c;
  {
      var c;
  }
})();

25.
Código
(function test(){
  let c;
  if(false){
      var c;
  }
})();

Las respuestas las publicare a lo largo del día.

Edit: Quizás el tema vaya mejor en Desafios - Wargames o en Scripting. Pero algunas de las preguntas están relacionadas con Desarrollo Web (y esto es decir mucho).

MinusFour:
Mi explicación de cada código.

https://gist.github.com/MinusFour/a4a3143edc0f04cc5bd57fe500fd20ba

[u]nsigned:
Excelente, muchas de estas cosas entran en las preguntas de entrevista técnica, tambien te suelen poner 'trampitas' con los closures y el hoisting.   ;-)

carlmarx:
Cita de: [u]nsigned en 11 Agosto 2021, 00:02 am

Excelente, muchas de estas cosas entran en las preguntas de entrevista técnica, tambien te suelen poner 'trampitas' con los closures y el hoisting.   ;-)


Sucede. En general, todo nuestro departamento fue despedido por errores en el desarrollo de programas en Java. Al final resultó que, generalmente usan una versión obsoleta. No sé dónde reclutaron a estas personas en absoluto. Luego recurrimos a desarrolladores externos https://qawerk.es/servicios/pruebas-de-aplicaciones-de-escritorio/ para probar todo después del lanzamiento. Esto cambió radicalmente la situación.

Navegación

[0] Índice de Mensajes