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

Iniciado por MinusFour, 25 Julio 2021, 16:16 PM

0 Miembros y 1 Visitante están viendo este tema.

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 (javascript) [Seleccionar]
(function test(){ console.log('ok'); })
test();


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


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


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


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


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


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


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


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


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


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


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



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


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


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


16.
Código (javascript) [Seleccionar]
(function test(){
  console.log(arguments);
})();


17.
Código (javascript) [Seleccionar]
(() => console.log(arguments))();

18.
Código (javascript) [Seleccionar]
(function test(arguments){
  console.log(arguments);
})();


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


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


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


22.
Código (javascript) [Seleccionar]
(function test(){
  var c;
  let c;
})();


23.
Código (javascript) [Seleccionar]
(function test(){
  var c;
  {
      let c;
  }
})();


24.
Código (javascript) [Seleccionar]
(function test(){
  let c;
  {
      var c;
  }
})();


25.
Código (javascript) [Seleccionar]
(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).


[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.   ;-)

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!