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

Páginas: (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.

Páginas: (1/1)