473,396 Members | 1,853 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Abbreviating a statement

Is there anything incorrect or risky by writing

var i = edit_array[5] - 1;
document.form1.cbt[i].checked=true;

as

document.form1.cbt[edit_array[5]-1].checked=true;

--
Ed Jay (remove 'M' to reply by email)

Win the War Against Breast Cancer.
Knowing the facts could save your life.
http://www.breastthermography.info
Sep 4 '08 #1
8 1064
Ed Jay wrote:
Is there anything incorrect or risky by writing

var i = edit_array[5] - 1;
document.form1.cbt[i].checked=true;

as

document.form1.cbt[edit_array[5]-1].checked=true;
If edit_array[5] <= 0, edit_array[5] % 1 != 0, or isNaN(edit_array[5]) ==
true, there is (probably) no document.form1.cbt[edit_array[5] - 1] and the
`checked' property lookup would throw a TypeError exception. With the first
approach you can test for the value of `i' before you use it, instead. In
any case you would want to test whether `document.form1.cbt[i]' referred to
an object before you attempted to access its properties.

Besides,

document.forms["form1"].elements["cbt"][edit_array[5] - 1]

is the standards-compliant and backwards-compatible way to refer to form
control objects.

<http://www.w3.org/TR/DOM-Level-2-HTML/ecma-script-binding.html>
PointedEars
--
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, <f8*******************@news.demon.co.uk>
Sep 4 '08 #2
Thomas 'PointedEars' Lahn wrote:
>Ed Jay wrote:
>Is there anything incorrect or risky by writing

var i = edit_array[5] - 1;
document.form1.cbt[i].checked=true;

as

document.form1.cbt[edit_array[5]-1].checked=true;

If edit_array[5] <= 0, edit_array[5] % 1 != 0, or isNaN(edit_array[5]) ==
true, there is (probably) no document.form1.cbt[edit_array[5] - 1] and the
`checked' property lookup would throw a TypeError exception. With the first
approach you can test for the value of `i' before you use it, instead. In
any case you would want to test whether `document.form1.cbt[i]' referred to
an object before you attempted to access its properties.
edit_array[n] (and relevant form elements) always exist, and are thoroughly
tested for existence before the above..
>
Besides,

document.forms["form1"].elements["cbt"][edit_array[5] - 1]

is the standards-compliant and backwards-compatible way to refer to form
control objects.

<http://www.w3.org/TR/DOM-Level-2-HTML/ecma-script-binding.html>
How important is this compliance issue? I have at least 100's of such
statements contained in some 15 scripts I would have to change.

Thank you for your input.

--
Ed Jay (remove 'M' to reply by email)

Win the War Against Breast Cancer.
Knowing the facts could save your life.
http://www.breastthermography.info
Sep 4 '08 #3
Ed Jay wrote:
Thomas 'PointedEars' Lahn wrote:
>Ed Jay wrote:
>>Is there anything incorrect or risky by writing

var i = edit_array[5] - 1;
document.form1.cbt[i].checked=true;

as

document.form1.cbt[edit_array[5]-1].checked=true;
If edit_array[5] <= 0, edit_array[5] % 1 != 0, or isNaN(edit_array[5])
== true, there is (probably) no document.form1.cbt[edit_array[5] - 1]
and the `checked' property lookup would throw a TypeError exception.
[...]

edit_array[n] (and relevant form elements) always exist, and are
thoroughly tested for existence before the above..
Then, and only then, it is a merely matter of taste and maintainability vs.
runtime efficiency.
>Besides,

document.forms["form1"].elements["cbt"][edit_array[5] - 1]

is the standards-compliant and backwards-compatible way to refer to
form control objects.

<http://www.w3.org/TR/DOM-Level-2-HTML/ecma-script-binding.html>

How important is this compliance issue?
As important as you think adhering to industry standards is.
I have at least 100's of such statements contained in some 15 scripts I
would have to change.
Then you have probably done something very inefficient in the past, and it
would be about time that you refactored your code, even though advanced
search-and-replace could provide a quick fix. If you provided a sample of
it, one could make recommendations to that end.
PointedEars
--
Anyone who slaps a 'this page is best viewed with Browser X' label on
a Web page appears to be yearning for the bad old days, before the Web,
when you had very little chance of reading a document written on another
computer, another word processor, or another network. -- Tim Berners-Lee
Sep 4 '08 #4
Thomas 'PointedEars' Lahn wrote:
>Ed Jay wrote:
>Thomas 'PointedEars' Lahn wrote:
>>Ed Jay wrote:
Is there anything incorrect or risky by writing

var i = edit_array[5] - 1;
document.form1.cbt[i].checked=true;

as

document.form1.cbt[edit_array[5]-1].checked=true;
If edit_array[5] <= 0, edit_array[5] % 1 != 0, or isNaN(edit_array[5])
== true, there is (probably) no document.form1.cbt[edit_array[5] - 1]
and the `checked' property lookup would throw a TypeError exception.
[...]

edit_array[n] (and relevant form elements) always exist, and are
thoroughly tested for existence before the above..

Then, and only then, it is a merely matter of taste and maintainability vs.
runtime efficiency.
>>Besides,

document.forms["form1"].elements["cbt"][edit_array[5] - 1]

is the standards-compliant and backwards-compatible way to refer to
form control objects.

<http://www.w3.org/TR/DOM-Level-2-HTML/ecma-script-binding.html>

How important is this compliance issue?

As important as you think adhering to industry standards is.
>I have at least 100's of such statements contained in some 15 scripts I
would have to change.

Then you have probably done something very inefficient in the past,
Clearly. I'm wondering where did I learn to code the wrong way.
and it
would be about time that you refactored your code, even though advanced
search-and-replace could provide a quick fix. If you provided a sample of
it, one could make recommendations to that end.
A good sample is the format I posted. I'm quite interested in complying with
industry standards, so it appears I have some work to do. Amending
document.form1.variableName.whatever to comply looks to be fairly simple
search/replace for the most part.

--
Ed Jay (remove 'M' to reply by email)

Win the War Against Breast Cancer.
Knowing the facts could save your life.
http://www.breastthermography.info
Sep 4 '08 #5
Ed Jay wrote:
Thomas 'PointedEars' Lahn wrote:
....
>Then, and only then, it is a merely matter of taste and
maintainability vs. runtime efficiency.
Efficiency and performance is often mentioned in situations
like this. One could test the existence of an object typically
100 000 - one million times for one page load
before the extra delay would be annoying.

And writing 100 000 lines of existence tests is a lot of
work for the programmer, I guess.

As a user I could be happy to wait 0.000 01 seconds longer, if
I get a better program.

Sep 4 '08 #6
Ed Jay wrote:
Thomas 'PointedEars' Lahn wrote:
>Ed Jay wrote:
>>I have at least 100's of such statements contained in some 15 scripts
I would have to change.
Then you have probably done something very inefficient in the past,

Clearly. I'm wondering where did I learn to code the wrong way.
>and it would be about time that you refactored your code, even though
advanced search-and-replace could provide a quick fix. If you provided
a sample of it, one could make recommendations to that end.

A good sample is the format I posted.
Not for this, it isn't. What I meant is, for example: Instead of writing

var x = a.b.c.d.e.f;
var y = a.b.c.d.e.g;
var z = a.b.c.f.e.h;

you should be writing

var o = a.b.c.d.e;
var x = o.f;
var y = o.g;
var z = o.h;

The same applies for property accesses that use the bracket form.
I'm quite interested in complying with industry standards, so it appears
I have some work to do. Amending document.form1.variableName.whatever to
comply looks to be fairly simple search/replace for the most part.
Good luck, then.

Please trim your quotes to the minimum required to retain the context.
PointedEars
--
realism: HTML 4.01 Strict
evangelism: XHTML 1.0 Strict
madness: XHTML 1.1 as application/xhtml+xml
-- Bjoern Hoehrmann
Sep 4 '08 #7
In comp.lang.javascript message <0a0vb4huf7f2nb9kos9erb3uel1m4lr4qa@4ax.
com>, Wed, 3 Sep 2008 23:35:30, Ed Jay <ed***@aes-intl.composted:
>Is there anything incorrect or risky by writing

var i = edit_array[5] - 1;
document.form1.cbt[i].checked=true;

as

document.form1.cbt[edit_array[5]-1].checked=true;
Evidently the Great Ranter has not understood, or has wantonly ignored,
the exact point of your sufficiently well-phrased question, to which the
answer is "no, unless there are further lines using variable 'i' which
would also get expanded.". But it might be of negative benefit if 'i'
were a variable with an explanatory name serving as comment. And
there's some merit in avoiding 'i' in disseminated material, as it might
in some fonts be misread.

--
(c) John Stockton, nr London UK. ?@merlyn.demon.co.uk DOS 3.3 6.20 ; WinXP.
Web <URL:http://www.merlyn.demon.co.uk/- FAQqish topics, acronyms & links.
PAS EXE TXT ZIP via <URL:http://www.merlyn.demon.co.uk/programs/00index.htm>
My DOS <URL:http://www.merlyn.demon.co.uk/batfiles.htm- also batprogs.htm.
Sep 4 '08 #8
Dr J R Stockton wrote:
>In comp.lang.javascript message <0a0vb4huf7f2nb9kos9erb3uel1m4lr4qa@4ax.
com>, Wed, 3 Sep 2008 23:35:30, Ed Jay <ed***@aes-intl.composted:
>>Is there anything incorrect or risky by writing

var i = edit_array[5] - 1;
document.form1.cbt[i].checked=true;

as

document.form1.cbt[edit_array[5]-1].checked=true;

Evidently the Great Ranter has not understood, or has wantonly ignored,
the exact point of your sufficiently well-phrased question, to which the
answer is "no, unless there are further lines using variable 'i' which
would also get expanded.". But it might be of negative benefit if 'i'
were a variable with an explanatory name serving as comment. And
there's some merit in avoiding 'i' in disseminated material, as it might
in some fonts be misread.
Thanks, John. :-)

--
Ed Jay (remove 'M' to reply by email)

Win the War Against Breast Cancer.
Knowing the facts could save your life.
http://www.breastthermography.info
Sep 4 '08 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

28
by: Fábio Mendes | last post by:
I'm sorry if it's an replicate. Either my e-mail program is messing with things or the python-list sent my msg to /dev/null. I couldn't find anything related in previous PEP's, so here it goes a...
15
by: Nerox | last post by:
Hi, If i write: #include <stdio.h> int foo(int); int main(void){ int a = 3; foo(a); }
13
by: eman1000 | last post by:
I was recently looking at the prototype library (http://prototype.conio.net/) and I noticed the author used the following syntax: Object.extend(MyObj.prototype, { my_meth1: function(){},...
37
by: Steven Bethard | last post by:
The PEP below should be mostly self explanatory. I'll try to keep the most updated versions available at: http://ucsu.colorado.edu/~bethard/py/pep_create_statement.txt...
18
by: Steven Bethard | last post by:
I've updated the PEP based on a number of comments on comp.lang.python. The most updated versions are still at: http://ucsu.colorado.edu/~bethard/py/pep_create_statement.txt...
28
by: Steven Bethard | last post by:
Ok, I finally have a PEP number. Here's the most updated version of the "make" statement PEP. I'll be posting it shortly to python-dev. Thanks again for the previous discussion and suggestions!...
7
by: Steven Bethard | last post by:
I've updated PEP 359 with a bunch of the recent suggestions. The patch is available at: http://bugs.python.org/1472459 and I've pasted the full text below. I've tried to be more explicit about...
19
by: Steve | last post by:
ASP error number 13 - Type mismatch with SELECT...FOR UPDATE statement I got ASP error number 13 when I use the SELECT...FOR UPDATE statement as below. However, if I use SELECT statement without...
18
by: dspfun | last post by:
Hi! The words "expression" and "statement" are often used in C99 and C- textbooks, however, I am not sure of the clear defintion of these words with respect to C. Can somebody provide a sharp...
23
by: florian.loitsch | last post by:
According to the spec Section 14 the production SourceElements:SourceElements SourceElement is evaluated as follows: 1. Evaluate SourceElements. 2. If Result(1) is an abrupt completion, return...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.