2015-06-04 2 views
1

Чтения через некоторые JavaScript от хостинга компании электронной коммерции и наткнулся на это:Зачем проверять char на один и тот же символ?

function add_wishlist() 
{ 
    if ('1' == '1') // <-- What is this? 
    { 
     window.open('addtowishlist.asp?itemid=137','popup','height=300,width=550,location=no,scrollbars=no,menubars=no,toolbars=no,resizable=yes'); 
    } 
    else 
    { 
     document.add.action = "add_cart.asp?action=addWishList"; 
     document.add.submit(); 
    } 
} 

Из моего основного понимания JavaScript, оператор == равенства будет пытаться преобразованием типа, если требуется, то сравнение значений. В этом случае символ 1 по сравнению с символом 1, который, похоже, будет всегда быть правдой.

Я чувствую, что, возможно, что-то не хватает, потому что почему есть статья else, если код всегда недостижим? Кажется, это был целенаправленный код, так как я не могу себе представить, что легко сравнить это сравнение. Тем не менее, по-видимому, в этом коде есть какая-то врожденная неряшливость, так как у программистов JavaScript должно быть привычка писать фигурные скобки на одной линии, чтобы избежать возможных возможных приемов вставки точки с запятой ...

Я что-то пропустил? Или это просто неряшливый код?

+5

страница сформирована по серверному языку. один из '' 1 '' в уравнении, вероятно, генерируется директивой препроцессора типа 'if (<%=ActionID%> = '1')' – Banana

+0

* "Однако, похоже, какая-то врожденная небрежность к этому коду, так как JavaScript-программисты должны быть в привычке писать фигурные скобки на той же линии, чтобы избежать любых возможных приемов вставки точки с запятой ... »* Это применимо только при использовании' return' с инициализатором объекта. Достаточно краев, если кто-то предпочитает стиль более старого, гораздо более легкого для перемещения кода, у них нет веской причины прекратить его использовать. –

+0

@ Теория Бананы имеет смысл. –

ответ

2

Иногда разработчики всегда используют истинные утверждения, чтобы временно отключить ветвь кода. ИМО, комментарии - лучший способ сделать это.

Другая возможность заключается в том, что это код, созданный инструментом, и это испускаемый код, который они получили при отключении функции.

+1

У JavaScript есть булевы, поэтому, если 'if (true)' будет работать. Вы предполагаете, что это сравнение - это просто плохое «исправление» или что-то еще? – SnakeDoc

+0

Да, 'if (true)' является более распространенным подходом. Это просто неряшливый код. – Jacob

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