В этом случае внутреннее this
связывается с глобальным объектом вместо к this
переменная внешней функции. Это - способ, которым разработан язык.
См. "JavaScript: Хорошие Части" Douglas Crockford для хорошего объяснения.
==
и ! =
проверяют равенство по значению, а в PHP вы можете сравнивать различные типы, в которых определенные значения считаются эквивалентными.
Например, "" == 0
оценивается как истина
, даже если одна строка, а другая целое число.
===
и ! ==
проверьте тип , а также значение.
Итак, "" === 0
будет оцениваться как false
.
] Edit: Чтобы добавить еще один пример того, как это «жонглирование шрифтами» может вас зацепить, попробуйте следующее:
var_dump("123abc" == 123);
Gives bool (true)
!
Второй - строгий по типу.
"1" != 1; // false
"1" !== 1; // true because the first is a string, the second is a number
! =
не равно по значению
! ==
не равно по значению и введите
в примере:
"2" == 2 -> true
"2" === 2 -> false
"2" !== 2 -> true
"2" != 2 -> false
это также важно , когда вы используете определенную функцию, которая может возвращать 0
или false
, например strpos: вы хотите всегда проверять типы там, а не только ценности. потому что 0 == false
, но 0! == false
.
поскольку strpos может вернуть 0
, если строка находится в первая позиция. но это не то же самое, что false, что означает, что строка не найдена.