Как возможно, чтобы пустая строка имела длину больше 0? - PullRequest
0 голосов
/ 30 ноября 2018

Я столкнулся с этой ошибкой, пытаясь запустить условную JS, чтобы проверить наличие пустой строки.В отладчике Chrome пустая строка оценивается длиной 1, а иногда даже 2. Это происходит в приложении реагирования.Я довольно растерялся из-за того, как прото все еще работает правильно, но метод нормальной длины не работает.

enter image description here

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Вероятно, это один из этих случаев (невидимые символы)

v = '\x0d'

console.log(v);        // ""
console.log(typeof v); // "string"
console.log(v[0]);     // "" 
console.log(v.length); // "1"


v = '\x0d\x0d'

console.log(v);        // ""
console.log(typeof v); // "string"
console.log(v[0]);     // "" 
console.log(v.length); // "2";
0 голосов
/ 30 ноября 2018

Строка может отображаться визуально пустой, когда вы запрашиваете ее значение, если строка содержит символы, которые не являются нормальными символами.Эти строки могут быть сгенерированы с помощью метода String.fromCharCode или неявно похожи на '\x0d'.Такие символы, как Enter, будут отображаться как пустая строка.Вы можете проверить наличие невидимых символов, используя метод charCodeAt.

Как показал Матус, это будет повторять рассматриваемое поведение:

v = '\x0d'

console.log(v);        // ""
console.log(typeof v); // "string"
console.log(v[0]);     // "" 
console.log(v.length); // "1"
...