Home > Articles

JavaScript FAQ

Like this article? We recommend

Like this article? We recommend

JavaScript Basics

What follows are a small selection of the questions that we have been asked about using JavaScript over the years. These are, we find, the favorite questions—the ones that come up the most often—so we include them here for you to read...hopefully you'll find something new and interesting here!

Why Does Javascript Need to be Enclosed Inside Comment Tags Inside the <script> Tag?

This dates back to when there were JavaScript and non-JavaScript enabled browsers around. The problem was that if a page containing JavaScript was displayed using a non-JavaScript enabled browser, there was a danger of either the script being displayed onscreen, or that an error would occur and the page would look really screwed up. By adding the comment tags, you get over all those problems...but remember to place a JavaScript comment before the last comment tag. Otherwise the JavaScript interpretor will think that they are operators and try to operate with them!

<script language="javascript">
<!--
alert("Welcome to InformIt!");
//-->
<script>

Do You Actually Need to Use the language="javascript" Bit?

It's best that you do. If you leave it out, the browser will use its default scripting language, which might not be JavaScript. Also, by specifying a language attribute, you can customize your script based on the version of the engine, giving you greater control and reducing the problems of writing for more than one browser.

Where Do I Place the <script> Block?

It can go pretty much anywhere in the HTML of the page, but if you stick with it in the <head> for as much of the time as possible, you'll make your life easier because that way you guarantee that your script will be loaded before the page, and reduce errors.

What Kinds of Errors?

Take rollovers on a page. If you allow the page to load in before the script, users will get error messages when they roll over the hot image—which looks really bad and is really annoying!

Do I Really Need those Semicolons (;) at the End of Each JavaScript Statement?

You only really need those semicolons if you are stringing more than one statement on the same line; something like this (in which we have statements within event-handling attributes as part of a string):

<a href="http://www.kingsley-hughes.com/index.htm" 
  onMouseOver="window.status='Click to visit our website!!!'; return true;"
  onMouseOut ="window.status=''; return true;">Click Here!</a>

Adding the semicolons at the ends of statements does make your code a lot more readable and easier to follow, so they might be worth adding. However, if you want less to type, just leave them out!

Help, I'm Having Problems Using Quotations in My Code!

When you want to use quotations, or in fact any other character that you are having problems with, you can prefix them with the backslash (\) character:

\b Backspace
\f Form feed
\n Line feed (newline)
\r Carriage return
\t Horizontal tab (Ctrl-I)
\' Single quotation mark
\" Double quotation mark
\\ Backslash

How Do You Get a Carriage Return in a Dialog Box?

Use \r at the point where you want the return.

What About On the Page, as When Using a document.write()?

In this case, you need to forget the \r and go with the HTML <br>.

My JavaScript Math is Wrong! What's Up with It?

This isn't really anything to do with accuracy, only with the way that JavaScript does the math internally. In most cases, you can avoid any unexpected results by rounding the result of your calculations to the precision of the most precise number in your equation. So, if you have the following, this can come out as 11.899999, instead of 11.9:

0.119 * 100 

To get the correct answer, you would need to round the output to three decimal places.

Can I Hide My Script from Prying Eyes?

Only if you want it to work in Internet Explorer! Microsoft has bought out a script encode that will encrypt your script yet still allow it to work.

Get the script encoder from: http://msdn.microsoft.com/scripting/vbscript/download/vbsdown.htm.

How Do I Round Numbers Off to a Certain Number of Decimal Places?

Use Math.round() to multiply the number by ten times the number of decimal places you want to round off by; then divide by that number.

For example, this will round off to tenths:

var pi = "3.1415926535";
pi = Math.round(pi*10)/10;

And this to hundredths:

pi = Math.round(pi*100)/100;

Can I Take My Javascript Code Out of the HTML and Put It In a Separate File?

Yes. Create a new file with the extension .js—for example, script.js. Put your JavaScript code in this file.

NOTE

You do not include opening and closing <script> tags in the .js file!

To embed script.js into your Web page, use these tags in your HTML file:

<script language="JavaScript" src="script.js">
</script>

NOTE

Some older browsers (such as Navigator 2.x and Explorer 3.x) cannot make use of external JavaScript files.

What Reserved Words (Words that You Cannot Use) Does JavaScript Have?

Here are the reserved words for JavaScript. When choosing names for your JavaScript variables, avoid these reserved words.

abstract else instanceof switch
boolean enum int synchronized
break export interface this
byte extends long throw
case false native throws
catch final new transient
char finally null true
class float package try
const for private typeof
continue function protected var
debugger goto public void
default if return volatile
delete implements short while
do import static with
double in super

In addition to the previous list, here are other words you should avoid (they are the names of client-side objects, methods, or properties in Netscape Navigator or Internet Explorer):

alert hidden outerWidth
all history packages
anchor image pageXOffset
anchors images pageYOffset
area isNaN parent
array java parseFloat
assign JavaArray parseInt
blur JavaClass password
button JavaObject pkcs11
checkbox JavaPackage plugin
clearTimeout innerHeight prompt
clientInformation innerWidth prototype
close layer radio
closed layers reset
confirm length screenX
crypto link screenY
date location scroll
defaultStatus Math secure
document mimeTypes select
element name self
elements navigate setTimeout
embed navigator status
embeds netscape String
escape Number submit
eval Object sun
event offscreenBuffering taint
fileUpload onblur text
focus onerror textarea
form onfocus top
forms onload toString
frame onunload unescape
frames open untaint
frameRate opener valueOf
function option window
getClass outerHeight

NOTE

Some of these words are actually part of the Java language, and are reserved in JavaScript for compatibility purposes.

How Can I Generate Random (or Pseudorandom) Numbers in JavaScript?

To generate random floating-point numbers in the range from 0 to 1, use the Math.random() method:

num = Math.random() 

If you need random floating-point numbers in the range from X to Y, use this code:

num = X + (Y-X)*Math.random()

I'm Worried About "Millennium Bugs" In My Code. What Can I Do?

You can use the following code snippet to correct any problems you might come across when retrieving the current year:

theDate = new Date();
theYear = theDate.getYear();
if (theYear<1900) theYear=theYear+1900;

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020