2012-06-27 3 views
17

Можно создать дубликат:
JavaScript === vs == : Does it matter which “equal” operator I use?Трехместный (3) Равные знаки

Я спросил another question здесь и получил большой ответ следующим образом:

$(document).on("keydown", function (e) { 
    if (e.which === 8 && !$(e.target).is("input, textarea") || $(e.target).is('[readonly]')) { 
     e.preventDefault(); 
    } 
}); 

Обратите внимание на три равные знаки === в if-statement. Я всегда думал, что вам нужны только два равных знака == для javascript/jQuery if-statement. Есть ли причина для трех?

UPDATE

Извините за повторяющийся вопрос - я искал, но не нашел хорошие вопросы. Я предполагаю, что использовал неправильные условия поиска.

+3

Я предполагаю, что его проверка абсолютного равенства. Значение не только равно, но и тот же – Grigor

+0

. Этот другой вопрос содержит много информации по этому вопросу (http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator- i-use) – MrOBrian

+2

Функция поиска переполнения стека не может обрабатывать символы, такие как '=', к сожалению. Но Google действительно работает: http://www.google.com/search?q=site:stackoverflow.com+javascript+%3D%3D%3D+vs+%3D%3D –

ответ

44

Тройной равный вход в javascript означает равенство без принуждения типа.

Например:

1=="1"  // true, automatic type coersion 
1==="1" // false, not the same type. 
+0

Спасибо за пример, сделанный это очень просто и легко понять. – FastTrack

+0

Не беспокойтесь, получайте удовольствие от кодирования! – Jeshurun

+0

JS истинно, ложно и ровно в деталях: https://gist.github.com/romankierzkowski/9024908 – RKI

10

Три знака равенства указывают, что значение и тип равны.

+4

Я начал отвечать именно так, а затем понял это должен был быть обманом, см. [это] (http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use) – TecBrat

Смежные вопросы