Чем друг от друга отличаются эти три выражения?

var i = 0;
	if( (function(){return i%2==0})(i) )console.log(i);

var i = 0;
	if( (function(){return i%2==0}(i)) )console.log(i);

var i = 0;
	if( (function(i){return i%2==0}) )console.log(i);
  • Вопрос задан
  • 625 просмотров
Решения вопроса 2
ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант
1)
var i = 0;
if( (function(){return i%2==0})(i) ){
  console.log(i);
};

в условии функция, вызванная с глобальной i=0, вернет true, в консоль выведется 0

2) То же самое, что 1). Только в 1) функция обернута в скобки, и то что в скобках - вызывается, в 2) в скобки обернут результат вызова. В консоль - 0.

3) Нет вызова функции внутри скобок, но сама функция интерпретируется как true, и получаем тот же 0 в консоли.

Зачем это всё? В образовательных целях?
Ответ написан
Lynn
@Lynn
nginx, js, css
Первые две ничем. В третьей нет вызова функции
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
03 июл. 2020, в 14:03
3000 руб./за проект
03 июл. 2020, в 13:49
25000 руб./за проект
03 июл. 2020, в 13:27
30000 руб./за проект