Ответ 1
===
полезно в слабых типизированных языках, таких как Javascript, потому что он проверяет, что сравниваемые объекты одного типа и избегают неявных преобразований.
===
абсолютно не используется в строго типизированном языке, таком как Java, потому что вы не можете сравнивать переменные разных типов без написания конкретного метода для этого.
Например, если вы хотите сравнить int
с String
в Java
, вам нужно будет написать специальный метод как таковой:
boolean compareIntString(int i, String s) {
return (i == parseInt(s));
}
Но это в значительной степени перебор. (И как вы заметите, как написано, этот метод принимает только int
и String
. Он не принимает только любые две переменные. Вы знаете, прежде чем назвать это, что типы данных разные.)
Главное, что, хотя вы можете делать i == s
в Javascript
, вы не можете делать i == s
на Java
, поэтому вам не нужно ===
.
Я думаю, короткий ответ заключается в том, что Java
==
является Javascript
===
. Если вы хотите эмулировать Javascript
==
и сравнить два элемента, игнорируя тип данных, вам придется написать собственный метод, который принимает общие типы данных в качестве аргументов... и выяснить логику сравнения, как минимум, всех возможные комбинации примитивных типов данных Java
...