Я раньше использовал C++ и Java, и у них нет этого оператора ===
.Зачем нам этот специальный === оператор?
Как они справляются без него, но на таких языках, как PHP, его ключ.
Я раньше использовал C++ и Java, и у них нет этого оператора ===
.Зачем нам этот специальный === оператор?
Как они справляются без него, но на таких языках, как PHP, его ключ.
Поскольку PHP не является безопасным по типу. == сравнивает 2 значения, но === сравнивает значения AND проверяет, одинаковы ли их типы классов.
Я верю, что «2» == 2 возвращает true, а «2» === 2 возвращает false.
Фактически equals
в Java и ==
в C# действовать как ===
делает в php. То есть "24".equals(24)
вернет false.
У java и C# нет эквивалента PHP ==
(т. Е. Оператор/метод, так что "24".fuzzyEquals(24)
вернет true). И это потому, что C# и Java строго типизированы, и такой оператор будет против их философии.
Просто, чтобы вы знали, что это то же самое в JavaScript, и согласно JSLint, ВСЕГДА следует использовать как проверку типов, что технически делает избыточным. Но я предполагаю, что это просто личные предпочтения
, когда мы говорим «А равно В» это может означать несколько совершенно разные вещи
и т.д.
большинство языков имеют разные операторы и функции для разных видов равенства, см http://en.wikipedia.org/wiki/Equality_%28relational_operator%29#Object_identity_vs._Content_equality
См: http://php.net/manual/en/language.operators.comparison.php – NullUserException