Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #8420
| From | "Richard Cornford" <Richard@litotes.demon.co.uk> |
|---|---|
| Newsgroups | comp.lang.javascript |
| References | <fuodc799nhk0c9ofihe817rjtkjid2cq79@4ax.com> |
| Subject | Re: "" + some form value |
| Date | 2011-11-19 03:17 +0000 |
| Message-ID | <65Odne1L8P9dglrTnZ2dnUVZ8uydnZ2d@giganews.com> (permalink) |
Gene Wirchenko wrote: > Dear JavaScripters: > > What does "" + some form value do? For example, The addition operator does string concatenation if either of its argument is a string primitive, as in this case. However, when it does string concatenation and non-string argument (the right hand side in this case) is type-converted into a string primitive (by applying the language's type conversion rules). It is this type-conversion that usually motivates the concatenation of an empty string, that is, the result is just the result of type converting the right hand side into a string primitive, as concatenating an empty string has no effect on that result. > ""+document.Contest.Last.value Assuming that - document.Contest.Last.value - if a reference to the - value - property of a form element then the concatenation is actually worthless as such - value - property values are already string primitives. Unfortunately forced type-conversion methods often ends up being applied as a mystical incantation, and so in contexts where they actually have no effect. Incidentally, to force type conversion to a string primitive the String constructor can be used without the - new - operator, as in:- String(document.Contest.Last.value) - Which has been both recommended against on the grounds that it could be confused with a miss-typed - new String(s); - and recommended as a self-documenting and explicit means of forcing type-conversion to a string. I am leaning towards the latter. Concatenating the empty string has been shown to be the most runtime efficient type-conversion to string primitive operation. > Won't document.Contest.Last.value be string regardless? Yep. > I tried forcing one such to a number, How? Strings can be type-converted into number primitive values using, say, +string or Number(string) (and commonly in the past or string*1 , or string-0 ). > and after the assignment, typeof() > reported it was a string. > > Is this ""+ a bit of superstition, or am I missing something? No, it appears to be superstition in this case. Though there is a slight possibility that - document.Contest.Last - was not referring to a form element in this case (then you only have evidence of poor code design rather than a mystical incantation). Richard.
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
"" + some form value Gene Wirchenko <genew@ocis.net> - 2011-11-18 15:07 -0800
Re: "" + some form value "Richard Cornford" <Richard@litotes.demon.co.uk> - 2011-11-19 03:17 +0000
Re: "" + some form value Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-19 17:09 +0100
Re: "" + some form value Gene Wirchenko <genew@ocis.net> - 2011-11-20 00:07 -0800
Re: "" + some form value Dr J R Stockton <reply1146@merlyn.demon.co.uk> - 2011-11-19 18:53 +0000
csiph-web