Beginning JS Basics questions

Which is best practice or format? Does the script have to be all on one line or can it be on many separate lines like this?

document.write("Today's date is " 
return+  (RightNow.getMonth()+1)+ 
return"-" + RightNow.getDate() + "-" 
return+ RightNow.getFullYear() + ".  
returnYou entered this Web Page at exactly: " 
return+ RightNow.getHours() +
return":" + RightNow.getMinutes()  + " and " 
return+ RightNow.getSeconds() +
return" seconds")

i would say multiple lines are better as its more readable instead of all in single lines.

It can be on separate lines, but it looks like you’re doing something wrong with those return parts.

Thanks, on another issue, concerning the document.write object and method, when using it, if you wish to use it to write “multiple” lines of text at different times in one script, do you use it only once or do have to use it each time you need to write the text?

It’s normally advised to stay away from document.write as there are almost always safer techniques to use.

Having said that though, it’s more efficient to add the content you want to output to a variable, and to then output that at the end of things.


var html = '';
...
html += '<p>Some text</p>';
...
html += '<p>Some more text</p>';
...
document.write(html);

I am studying JS from an outdated source:

JavaScript Primers #3

but that is the only source which I am understanding so I have to deal with things a little differently when it comes to modern day JS just so you understand what I am dealing with, I haven’t gotten to var yet, I am following the course as structured. So, would it be possible for you to break down any further what what you have written please?

If so, my questions, using your example would be:

1] To begin using the write method, should I use this var html = ‘’;
every time?

2] What are the 3 dots for between each line?

3] Should I always write this html += ‘<p>Some text</p>’; when referring to text?

4] If you are saying I should stay away from the document.write then why use this document.write(html); at the end?

late here now, will check back in the morning for any answers, thanks!

Sure thing. I just had a look at your source, and it appears that the “return” parts from what you quoted, are actually the image that was used on the web page to indicate a new line.

I won’t get in to the pros/cons of document.write just yet. Instead, here’s something about what you were asking, the formatting of a statement.

The code from your sample page should instead be:

write("Today's date is " +  
(RightNow.getMonth()+1)+ 
"-" + RightNow.getDate() + "-" 
+ RightNow.getFullYear() + ".
You entered this Web Page at exactly: " 
+ RightNow.getHours() +
":" + RightNow.getMinutes()  + " and " 
+ RightNow.getSeconds() +
" seconds");

That could also be all on one line:


document.write("Today's date is " + (RightNow.getMonth()+1)+ "-" + RightNow.getDate() + "-" + RightNow.getFullYear() + ". You entered this Web Page at exactly: " + RightNow.getHours() + ":" + RightNow.getMinutes()  + " and " + RightNow.getSeconds() + " seconds");

Or it could be split up like this:


document.write(
    "Today's date is " +
    (RightNow.getMonth() + 1) + "-" + 
    RightNow.getDate() + "-" +
    RightNow.getFullYear() +
    ". You entered this Web Page at exactly: " + 
    RightNow.getHours() + ":" + 
    RightNow.getMinutes()  + " and " + 
    RightNow.getSeconds() + " seconds"
);

Notice how it’s easier to understand that last example? The main purpose of formatting is to reduce confusion when you and other people read your code. One of the best ways to reduce confusion, is to follow a style guide or code conventions for your code. These help to enforce good practices, so that confusion is reduced to a minimum.

A better online learning resource that you may want to consider has been receiving high praise lately. You may want to check out Eloquent JavaScript instead.

Sorry, I don’t understand, any other wya you can explain the purpose of “return”?

Also, I looked at your link but that seems way too technical for me so I will stick with the one I am using for now but thanks anyway.

Sure. Let’s go back to the code that you posted, which started all of this.

document.write("Today's date is " 
return+  (RightNow.getMonth()+1)+ 
return"-" + RightNow.getDate() + "-" 
return+ RightNow.getFullYear() + ".  
returnYou entered this Web Page at exactly: " 
return+ RightNow.getHours() +
return":" + RightNow.getMinutes()  + " and " 
return+ RightNow.getSeconds() +
return" seconds")

Whereever you see the word “return” in there, they should not be there. Those are the images on the web page that look like this:

Those don’t belong in your code, so when you copy the code from their web page, you’ll need to watch out for those images and get rid of the extra text that they naughtily add to the code.

Note though that there is also a keyword called return, that’s used to return a value from a function. See Javascript Basics Part 3 for an example of that, in the validateForm function.

So in all, watch out for on the web page, and be sure to remove what they add.

Very well explained, thanks! On to Primer 4

On Primer 11 now:

JavaScript Primers #11

<SCRIPT type="text/javascript" >

window.open('opened.html', 'joe','height=300,width=300,resizable=no')

 </SCRIPT>

I can still resize the windows, any reason why the resizabe attribute is not working please?

Please read the documentation concerning the windows.open resizable setting.

Ok, thanks but what I should have asked is “why” would someone NOT want the window to be resizeable?

The link from the documentation to the bug report seems to make a similar case.

Last issue on this topic please, I am having trouble understanding these two since I cannot see it happening I think:

  1. location=yes or no
    Whether or not you wish to show the location box with the current url (The place to type http://address).

  2. directories=yes or no
    Whether or not the window should show the extra buttons. (what’s cool, personal buttons, etc…).

Can you give me an example of both? When I use those 2 attributes I don’t see anything on my end?

If you look on the same page of the window.open documention, you will see that in [url=“https://developer.mozilla.org/en/DOM/window.open#section_7”]section #7 it says that Firefox now always forces location to be shown.

The same section of the documentation page says that directories is now obselete.
It was supported in old web browsers up to IE6, but not in more recent ones.

There’s little that I can add to the information that you get from there.

Not really what I am asking, let me try another way, what “location box” is this referring to, the new pop up window? If yes then what “current URL” is this referring to? Does this all mean whether or not the pop up window should show the URL of the page you are reading from?

Yes

The one of the popup window.

That’s right.

Cool! Regarding this:

  1. directories=yes or no
    Whether or not the window should show the extra buttons. (what’s cool, personal buttons, etc…).

When I use the directories=yes I am not seeing the “extra buttons” mentioned, can you elaborate on this please?

I’ve tried to direct you to the information twice already on the documentation page. Now it’s time to blatently dump that info here.

window.open - [url=“https://developer.mozilla.org/en/DOM/window.open#section_7”]Toolbar and chrome features

directories

[indent]Obsolete in Gecko 2
Obsolete synonym of personalbar. In IE, it rendered the Links bar. Supported in Gecko up to 1.9.2 and in IE up to 6.[/indent]

I elaborated earlier in saying that it only works in old web browsers like IE6. Anything newer than that and it doesn’t work.