Я объяснял коллеге, что вы должны использовать ===
и !==
(и >==
и <==
, конечно) при сравнении переменных в JavaScript, чтобы он не принуждал аргументы и не делал все зависание и запутались, но они задали мне вопрос из двух частей, на который я не знал ответа, и подумал, что я попрошу экспертов здесь, а именно:
Как насчет
>
и<
- когда они сравнивают, они также принуждают аргументы или нет - почему нет какого-то оператора>>
и<<
(вероятно, должен быть какой-то другой синтаксис как Я бы предположил, что они будут операциями смены битов, если они идут по всему стилю C, но вы получаете суть)?
Поэтому я могу написать тест, чтобы найти ответ на первую часть, что я и сделал, вот он:
// Demo the difference between == and ===
alert(5 == "5");
alert(5 === "5");
// Check out what happens with >
alert(5 > "4");
alert(5 > 4);
и он вернул:
true
false
true
true
поэтому он выглядит так, как >
делает принуждение, так как > "4"
и > 4
возвращают тот же результат. так как насчет второй части...
Есть ли какой-то оператор для >
и <
, которые не принуждают тип (или как я могу изменить свой тест для безопасного тестирования)?