В чем разница между href и toString при преобразовании интерфейса URL в строку? - PullRequest
0 голосов
/ 26 января 2019

Допустим, я использую интерфейс URL для создания нового URL.Например, вот так:

new URL('https://www.example.com/démonstration.html?query=6#bla')

Теперь мне нужно это в виде простой строки. Как мне лучше всего конвертировать его?

Примечание: Примеры здесь являются минимальными.Я, очевидно, не конвертирую (жестко закодированную) строку в объект URL и обратно в строку.Чтобы дать некоторый контекст, представьте, что я изменяю объект URL между (возможно, с помощью пользовательского ввода) и / или передаю его различным функциям или около того.В конце концов, у меня есть объект URL, и я хочу его в виде простой строки.


Я нашел следующие способы:

Как вы можете видеть, в моем примере он возвращает точното же самое.


Итак, глядя на документ , вы заметите:

  • href - это "строка USVString, содержащая весь URL."
  • toString возвращает «USVString, содержащую весь URL. Это синоним URL.href, хотя его нельзя использовать для изменения значения."

Хорошо, яне хочу изменять это.Но действительно ли нет различий?Может быть, в отношении производительности, поддержки браузера или даже стиля кода?Я должен выбрать один, так какой из них выбрать?

¹ На самом деле Я вижу, что в таблице совместимости есть различия для этих способов преобразования .Так что я думаю, что есть также некоторые унаследованные реализации, которые обрабатывают вещи по-другому или около того.Я не могу поверить, что это истинный «синоним», и эта болтовня в поддержке браузеров, кажется, поддерживает веру.

1 Ответ

0 голосов
/ 26 января 2019

Согласно спецификации , они делают то же самое. Атрибут href помечен как stringifier, что означает, что в JavaScript класс получает метод toString с точно таким же поведением, что и у атрибута.

Как вы заметили, поддержка браузеров для них не одинакова. Также один - это больше, чтобы напечатать и передать чем другой. Это сводится исключительно к предпочтениям. Однако лично я считаю, что явный вызов toString лучше всего передает сообщение " У меня есть объект URL, и я хочу его в виде простой строки. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...