Хэш-значение имеет ограниченный набор символов, которые технически разрешены в нем.Если вы посмотрите здесь URL spec , то значение хеш-функции называется фрагментированным.Вот грамматика того, что она может содержать:
fragmentid xalphas
xalphas xalpha [ xalphas ]
xalpha alpha | digit | safe | extra | escape
safe $ | - | _ | @ | . | & | + | -
extra ! | * | " | ' | ( | ) | ,
escape % hex hex
alpha a | b | c | d | e | f | g | h | i | j | k |
l | m | n | o | p | q | r | s | t | u | v |
w | x | y | z | A | B | C | D | E | F | G |
H | I | J | K | L | M | N | O | P | Q | R |
S | T | U | V | W | X | Y | Z
digit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Вы заметите, что вы можете иметь &
, но не =
, если только вы не вызовете encodeURIComponent и decodeURIComponent для значения хеша при его установке или получении.
Что касается того, какую технику использовать, это действительно зависит от вас.Вы можете создать свой собственный маленький синтаксис в хеш-значении, если вам нужно представить несколько параметров там.Я лично, вероятно, разделил бы значения с помощью &
, как в строке запроса, но использовал бы -
вместо =
.