2011-01-19 4 views

ответ

3

Это return утверждение, что вызывает функцию, содержащую вернуть логическое значение.

  1. Это вызывает функцию dihy() со значением переменной year в качестве аргумента.
  2. Он проверяет, является ли возвращаемое значение 353 или 383 (имена объектов, которые существуют , в объект буквальный). Неважно, какое значение имеет свойство; он просто должен существовать внутри объекта. (То есть 1 - это просто произвольное значение.)
  3. Если это так, функция возвращает true, в противном случае false.

JavaScript программисты иногда используют этот подход, поскольку он короче, чем проверка в отношении каждого значения по отдельности, и это легко программно добавить новые значения для проверки против:

var foo = {353: 1, 383: 1}; 

function bar(year) { 
    return year in foo; 
} 

alert(bar(1955)); // false 
foo[1955] = 1; 
alert(bar(1955)); // true 

Вы можете посмотреть на MDC documentation for the in operator.

2

Это будет true, если вызов функции dihy с аргументом year является ключевым в объекте {353:1, 383:1} и false иначе.

Это может быть переписано, как это, например:

var result = dihy(year); 
return result == 353 || result == 383; 
1

Это выражение:

dihy(year) in {353:1, 383:1} 

позвонить в dihy(year) функция предположительно возвращает числовое значение. Если это значение равно 353 или 383, выражение будет оцениваться до true, в противном случае - false.

Обратите внимание, что ваш код не является выражением, а утверждение, то return заявление:

return expression; 

Итак, return заявление будет либо вернуть true или false.

0

Возвращает true или false, в зависимости от результата dihy() возвращает 353 или 383 (true для этих двух, что-то еще ложное).

А это значит, что именно ... является результатом этой функции, содержащейся в этой коллекции данных ...

0

Там нет оснований использовать объект здесь, т.е. {353: 1, 383: 1}. Фактически значения 1 смешиваются и могут заставить непосвященных думать, что значение 1 возвращается, когда оно не является и является чисто произвольным.

Следующая эквивалентно:

dihy(year) in [353, 383] 
+0

Это не будет работать. Объект массива имеет два ключа: «0», который имеет значение 355 и «1», которое имеет значение 383. Это означает, что ваше выражение оценивается как true, только если результат вызова функции dihy() равен 0 или 1, а не 353 и 383. –

+0

@Moshe Нет, неправда. –

Смежные вопросы