Почему в моем коде javascript появляется красная полоса при работе в возвышенном - PullRequest
0 голосов
/ 13 февраля 2020

Javascript code

Я пытаюсь изменить текст метки в html, чтобы показать файл, загруженный в элемент ввода, на который указывает метка. Я нашел этот код javascript и немного изменил его, чтобы он соответствовал моему html. Он не ломает мою страницу, но и не отображает имя файла, и я раньше не видел эту красную полосу, поэтому мне интересно, имеет ли она какое-то отношение к этому, или в более общем смысле, почему панель появляется в первую очередь? , Заранее спасибо за любые советы!

1 Ответ

2 голосов
/ 13 февраля 2020

Красная часть - это подсветка синтаксиса, сообщающая, что на основании правил, изложенных в определении синтаксиса для любого языка или типа файла, который вы используете, текст, который здесь отображается, недопустим. Это то, что обеспечивает используемое определение синтаксиса, поэтому оно отображается не во всех типах файлов (оно зависит от автора синтаксиса) и будет происходить независимо от того, какие сторонние пакеты, такие как Linters, вы могли установить.

Строка кода, которая делает это:

fileName = e.target.value.split('\').pop();

Подсветка синтаксиса дает вам 3 различных подсказки о том, что происходит не так (а здесь, в SO, подсветка синтаксиса дает похожие подсказки):

  1. Конец строки - отвратительный красный цвет; это означает, что эта часть строки (все после фактического текста) каким-то образом разбита
  2. До красного текста текст ).pop(); является желтым, что означает, что это строка, но это не так похоже, что это вообще должна быть строка (технически вы можете видеть, что она того же цвета, что и строка в строке выше, но не того же цвета, что и другие вызовы функций, такие как split())
  3. The \' последовательность фиолетового цвета, что означает, что это интерпретируется как character escape (здесь мы можем видеть, что цвет этого текста отличается от того, что мы ожидаем, что содержимое строки будет выглядеть).

Взятые вместе, \' не заканчивает строку в аргументе до split(), как вы думаете; строковая константа продолжается там до конца строки, и поскольку конец строки достигается без закрытия строки, эта строка прерывается.

Итак, вам нужно исправить вызов split() аргумент, чтобы быть допустимой строкой. Возможно, вы имели в виду '\\' (вы хотите разделить строку при обратной косой черте) или '\'' (вы хотите разделить строку в одинарных кавычках).

...