0

Помогите понять эту запись:

if(!this.current_position) {
    this.arrows.left.hide();
}

Как понять эту запись !this.current_position. Я знаю что ! это отрицание. Но сама запись не понятна.

korytoff
  • 5,916
siberian
  • 1,559
  • Это обращение к свойству или методу объекта в котором находишься. https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/this – Ihor Tkachuk Jan 20 '16 at 10:27
  • а почему отрицание !? – siberian Jan 20 '16 at 10:32
  • Если условие вернет false, тогда выполнится конструкция внутри. – Ihor Tkachuk Jan 20 '16 at 10:33
  • !something также будет true если something - false,0,undefined,null или '' (пустая строка). – Darth Jan 20 '16 at 10:37
  • может если у кого время есть , посмотрите конкретно в этой функции https://jsfiddle.net/lilubanana/e9ncjnca/ что эта запись дает? – siberian Jan 20 '16 at 10:40
  • @Marina Voronova Более точно можно сказать, если знать, какие значения присваиваются или хранятся в current_position. Это может быть 0, "", null, undifined и т.д. – Vlad from Moscow Jan 20 '16 at 10:40
  • изначально там 0 – siberian Jan 20 '16 at 10:41

1 Answers1

1

Так если вы знаете, что ! это отрицание не понятно в чем у вас проблема. В этом коде проверяется:

Если не текущая позиция (не забыть про приведение типов), то скрыть левую стрелку (видимо у слайдера).

Скорее всего тут проверка на значение == 0, то есть такое условие this.current_position == 0 будет идентично !this.current_position в случае типа свойства – int

UPD

Проще говоря, если this.current_position равен 0 или такого свойства не существует, то выполняется this.arrows.left.hide();

korytoff
  • 5,916