2016-01-15 8 views
-1

В настоящее время я пишу расширение Chrome и необходимо заменить/переопределить некоторые функции на главной странице (потому что кто-то любит писать цветы как яваскрипт переменные в рамках методов ... 100 раз -.-) ... так что я просматривал эти методы и получил к способу, который имеет код, как показано ниже:if ('False' == 'True') ... else if ('False' == 'True') Значение

if ('False' == 'True') { 
    ... 
    return false; 
} 
else if ('False' == 'True') { 
    ... 
    return false; 
} 

после этого моя голова начала аварии полностью ... если я не ошибаюсь, это else if написано так:

if(false){ 
    ... 
    return false; 
} 
else if(false){ 
    ... 
    return false;  
} 

Я никогда раньше не видел чего-то подобного, поэтому я очень смущен ... Имеет ли это какое-нибудь полезное значение в javascript? что может быть на уме разработчика, когда он написал этот код? почему я должен писать такое выражение, которое всегда ложно ... а затем определить else с тем же условием?

+4

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

+0

«Я запирал там методы [sic]» ew. Кроме того, похоже, что автор этой страницы не очень хорошо писал. – Blubberguy22

+2

Добро пожаловать в мир совершенно бессмысленного кода, который пишут другие люди, с которыми вам приходится иметь дело. –

ответ

1

Я предполагаю, что это pre-processor inserting constants с предположением, что средство удаления мертвого кода, такое как Uglify, исключит его из окончательной сборки.

2

'False' и 'True' на самом деле являются строками, 'True' == 'False' всегда должны оцениваться как false. В результате ни один из кодов не будет оцениваться, поскольку оба условия установлены на false («if» и «else if»).