Diffutil в recycleview, делает его автопрокруткой, если добавлен новый элемент

Хороший хак, чтобы проверить, имеет ли obj.length тип number или нет. Вы видите, что оператор + может использоваться для принудительного принуждения строк. Например:

alert(+ "3" + 7); // alerts 10

Это возможно, потому что оператор + принуждает строку "3" к числу 3. Следовательно, результатом является 10, а не "37".

Кроме того, JavaScript имеет два типа операторов равенства и неравенства:

  1. Строгое равенство и неравенство (например, 3 === "3" выражает false).
  2. Нормальное равенство и неравенство (например, 3 == "3" выражает истину).

Строгое равенство и неравенство не заставляют ценность. Следовательно, число 3 не равно строке "3". Нормальное равенство и неравенство действительно ценят ценность. Следовательно, число 3 равно строке "3".

Теперь приведенный выше код просто принуждает obj.length к числу с помощью оператора + и строго проверяет, имеет ли значение до и после принуждения одинаковы (т.е. obj.length типа number). Это логически эквивалентно следующему коду (только более кратким):

if (typeof obj.length === "number") {
    // code
}
13
задан tynn 17 April 2017 в 23:24
поделиться