Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: MinusFour en 25 Julio 2021, 16:16 PM

Título: ¿Que tanto sabes de los entornos léxicos de javascript?
Publicado por: MinusFour en 25 Julio 2021, 16:16 PM
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).
Título: Re: ¿Que tanto sabes de los entornos léxicos de javascript?
Publicado por: MinusFour en 28 Julio 2021, 02:55 AM
Mi explicación de cada código.

https://gist.github.com/MinusFour/a4a3143edc0f04cc5bd57fe500fd20ba
Título: Re: ¿Que tanto sabes de los entornos léxicos de javascript?
Publicado por: [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.   ;-)