Задачи по JS

Робот по 10 задачам

1)

// ES5
var c = new Counter();
var a = c.next(); //1
var b = c.next(); //2

2)

var c = counter();
var a = c.next(); //1
var b = c.next(); //2

3)

var a = counter(); //1
var b = counter(); //2

4)

// ES6
var c = new Counter();
var a = c.next(); //1
var b = c.next(); //2

5)

   function qwe() {
     try {
       throw new Error('Ошибка');
         return 1;
     } catch (e) {
        return 2;
     } finally {
       return 3;
     }
   }

6)

 Чему равен a[0]()
   var a = [];
   for (var i = 0; i < 3; i++) {
     a[i] = function() {
       console.log(i);
     };
   }

7)

// что выведется в консоль

function foo(){
  var that = this;
  function bar() {
    return that + this;
  }

  arrBar = () => {
    return that + this;
  }

  console.log(bar.call(10) + arrBar.call(15));
}

// вариант 1
foo.call(10);
// вариант 2
foo(10);

8)

  (() => {console.log(this)}).bind(1)();
  // будет window (если не вкл use strick)

9)

// на Promise
delay(1000, 42).then(res => console.log(res));

//на async/await
delay(1000, 42)

Решение задач

1
function Counter(){
  this.count = 1;
  this.next = function(){
    console.log(this.count++);
  };
};

var c = new Counter();
var a = c.next(); //1
var b = c.next(); //2
2

function counter(){
  var count = 1;
  return {
    next: function(){
      console.log(count++);
    }
  };
};

var c = counter();
var a = c.next(); //1
var b = c.next(); //2
3
var counter = function(){
  var count = 1;
  return function(){
    console.log(count++);
  }
}();

var a = counter(); //1
var b = counter(); //2
4
// ES6

class Counter {
  constructor(){
    this.count = 1;
  }

  next() {
    console.log(this.count++);
  }
}

var c = new Counter();
var a = c.next(); //1
var b = c.next(); //2
5
   function qwe() {
     try {
       throw new Error('Ошибка');
         return 1;
     } catch (e) {
        return 2;
     } finally {
       return 3;
     }
   }

на экране будет 3, т.к. finally выполняется всегда

6

Вариант 1


   var a = [];
   for (let i = 0; i < 3; i++) {
     a[i] = function() {
       console.log(i);
     };
   };

   a[0]();

Вариант 2


   var a = [];
   for (var i = 0; i < 3; i++) {
     (function(j){
     a[j] = function() {
       console.log(j);
     }
     })(i);
   };

   a[0]();

Вариант 3


   var a = [];

   function log(j){
     console.log(j);
   };

   for (var i = 0; i < 3; i++) {
     a[i] = log.bind(this, i);
   };

   a[0]();

results matching ""

    No results matching ""