As far as I know, by default they're all defined to be the same bar, except for maybe some spacing differences. But LaTeX, like properly written HTML, favors semantic markup over purely functional markup - you use the command for what you mean, rather than just what you want to appear on the page. This way, if you decide later on that you want certain kinds of bars to look different, it's easier to change only the bars you actually want to and not mess with anything else. For example, if you want to have less space between the bars and the text in constructions like |x|, you can redefine \lvert and \rvert appropriately.
As qbi said, it is recommended to define a higher level of semantic markup, namely things like \abs, \norm, \union, \or, \suchthat, etc., to represent what you really mean in your formulas, and to use those instead of \vert, \lvert and \rvert directly.
Of course, that's off topic from the question. As far as that's concerned, I'm glad you asked! The answers have been rather helpful.
– Daniel H Sep 04 '11 at 21:58|does not have. – Michael Hardy May 03 '13 at 00:08\midscales with\big-like operators. See for yourself:\bigg\vert,\bigg\lvert,\bigg\rvert.\middoesn't. I think this is better-suited as a comment. – Werner Apr 02 '15 at 20:15\textbar? – Alan Dong Jan 17 '16 at 20:46\big|produces height that is more than sufficient for some uses. – Incnis Mrsi Feb 23 '20 at 08:36