Добро пожаловать в JavaScript, где 0, ''
, ""
, null
и undefined
все означают false
-y.
Проблема в том, что логическое ИЛИ выполнено||
использует нестрогое сравнение на равенство, поэтому, когда variableData
равно 0, оно преобразуется в false
(вместе с требуемыми преобразованиями null
и undefined
) и альтернативной заменой ""
выбран.
Чтобы решить проблему, вам необходимо выполнить более тщательную проверку значения variableData
перед его заменой.
Например, троичный оператор можетиспользоваться:
var variableData = ...
variableData = (!variableData && variableData !== 0) ? "" : variableData
Это заменит ""
для других false
-y значений, но позволит заменить на числовое значение 0
.Также обратите внимание, что String(0)
является правдивым, поэтому, если вы вернете найденные переменные в виде строки, оператор короткого замыкания должен дать желаемый результат.