Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > "" + some form value

Reply
Thread Tools

"" + some form value

 
 
Gene Wirchenko
Guest
Posts: n/a
 
      11-18-2011
Dear JavaScripters:

What does "" + some form value do? For example,
""+document.Contest.Last.value
Won't document.Contest.Last.value be string regardless? I tried
forcing one such to a number, and after the assignment, typeof()
reported it was a string.

Is this ""+ a bit of superstition, or am I missing something?

Sincerely,

Gene Wirchenko
 
Reply With Quote
 
 
 
 
Thomas 'PointedEars' Lahn
Guest
Posts: n/a
 
      11-19-2011
Richard Cornford wrote:

> Gene Wirchenko wrote:
>> Dear JavaScripters:
>>
>> What does "" + some form value do? For example,
>> ""+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.


There is no consensus on what is most runtime-efficient here. In fact, the
results at <http://jsperf.com/string-conversion-speed> vary so much between
implementations, runtime environments, and even consecutive tests in the
very same runtime environment, and String() is indeed self-documenting, that
I am going to keep my original, ECMAScript-supported approach┬╣ of using
String() when I do not know the type of the value and if it(s object
representation) has a toString() method.


PointedEars
___________
┬╣) the `+' operator requires more algorithmic steps for the type conversion
than String()
--
Prototype.js was written by people who don't know javascript for people
who don't know javascript. People who don't know javascript are not
the best source of advice on designing systems that use javascript.
-- Richard Cornford, cljs, <f806at$ail$1$(E-Mail Removed)>
 
Reply With Quote
 
 
 
 
Dr J R Stockton
Guest
Posts: n/a
 
      11-19-2011
In comp.lang.javascript message <fuodc799nhk0c9ofihe817rjtkjid2cq79@4ax.
com>, Fri, 18 Nov 2011 15:07:56, Gene Wirchenko <(E-Mail Removed)> posted:

> What does "" + some form value do? For example,
> ""+document.Contest.Last.value
>Won't document.Contest.Last.value be string regardless?


Not inevitably.

document.Contest = {} ;
document.Contest.Last = {} ;
document.Contest.Last.value = new Date() ;
99 ;
document.Contest.Last.value.getHours() ;

gives me 18 (YMMV)

> I tried
>forcing one such to a number, and after the assignment, typeof()
>reported it was a string.
>
> Is this ""+ a bit of superstition, or am I missing something?


It ensures a string value; for example, this

var U ; typeof ( ''+U) // gives 'string'
typeof (+''+U) // gives 'number'
typeof (''+ +U) // gives 'string'

Some coders find it easier to force a string rather than to become
confident that it is and always will be inevitably a string already.

--
(c) John Stockton, nr London, UK. ?@merlyn.demon.co.uk Turnpike v6.05.
Website <http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms
PAS EXE etc. : <http://www.merlyn.demon.co.uk/programs/> - see in 00index.htm
Dates - miscdate.htm estrdate.htm js-dates.htm pas-time.htm critdate.htm etc.
 
Reply With Quote
 
Gene Wirchenko
Guest
Posts: n/a
 
      11-20-2011
On Sat, 19 Nov 2011 03:17:21 -0000, "Richard Cornford"
<(E-Mail Removed)> wrote:

>Gene Wirchenko wrote:


[snip]

>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


I think I will, too.

>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 ).


With an assignment statement. The following statement was an
alert() to get the typeof() and reported string.

[snip]

>> 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).


No, definitely a form element. That is why I was puzzled about
it.

Sincerely,

Gene Wirchenko
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to retrieve form field value if form is EncType=multipart/form-dataForm? Li Zhang ASP .Net 4 02-27-2009 01:23 AM
Loop Form - extract display 'value' as well as form value? ASP General 2 02-20-2006 09:36 PM
Pass a form value that is different from selected value Iceman HTML 1 01-07-2004 03:29 PM
some value , some reference Peter Java 15 10-14-2003 08:01 AM
how to Add different controls(textBox,DropDownList or some ) in the same column,based upon the value in the previous column (Say second Colum which contain dropdown with some values) ? Balaji ASP .Net Datagrid Control 0 07-07-2003 08:32 AM



Advertisments