Basics of JavaScript
Basics of JavaScript
JavaScript was first known as LiveScript, but Netscape changed its name
to JavaScript, possibly because of the excitement being generated by Java.
JavaScript made its first appearance in Netscape 2.0 in 1995 with the
name LiveScript. The general-purpose core of the language has been
embedded in Netscape, Internet Explorer, and other web browsers.
Client-Side JavaScript
Client-side JavaScript is the most common form of the language. The script
should be included in or referenced by an HTML document for the code to
be interpreted by the browser.
It means that a web page need not be a static HTML, but can include
programs that interact with the user, control the browser, and dynamically
create HTML content.
Advantages of JavaScript
The merits of using JavaScript are −
Less server interaction − You can validate user input before sending the page
off to the server. This saves server traffic, which means less load on your
server.
Immediate feedback to the visitors − They don't have to wait for a page
reload to see if they have forgotten to enter something.
Increased interactivity − You can create interfaces that react when the user
hovers over them with a mouse or activates them via the keyboard.
Richer interfaces − You can use JavaScript to include such items as drag-and-
drop components and sliders to give a Rich Interface to your site visitors.
Limitations of JavaScript
We cannot treat JavaScript as a full-fledged programming language. It lacks
the following important features −
Client-side JavaScript does not allow the reading or writing of files. This has
been kept for security reason.
To make our life simpler, various vendors have come up with very nice
JavaScript editing tools. Some of them are listed here −
JavaScript - Syntax
JavaScript can be implemented using JavaScript statements that are placed within
the <script>... </script> HTML tags in a web page.
You can place the <script> tags, containing your JavaScript, anywhere
within your web page, but it is normally recommended that you should keep
it within the <head> tags.
The <script> tag alerts the browser program to start interpreting all the
text between these tags as a script. A simple syntax of your JavaScript will
appear as follows.
<script ...>
JavaScript code
</script>
Language − This attribute specifies what scripting language you are using.
Typically, its value will be javascript. Although recent versions of HTML (and
XHTML, its successor) have phased out the use of this attribute.
Type − This attribute is what is now recommended to indicate the scripting
language in use and its value should be set to "text/javascript".
This function can be used to write text, HTML, or both. Take a look at the
following code.
<html>
<body>
<!--
document.write("Hello World!")
//-->
</script>
</body>
</html>
<!--
var1 = 10
var2 = 20
//-->
</script>
But when formatted in a single line as follows, you must use semicolons −
<!--
//-->
</script>
Note − It is a good programming practice to use semicolons.
Case Sensitivity
JavaScript is a case-sensitive language. This means that the language
keywords, variables, function names, and any other identifiers must always
be typed with a consistent capitalization of letters.
NOTE − Care should be taken while writing variable and function names in
JavaScript.
Comments in JavaScript
JavaScript supports both C-style and C++-style comments, Thus −
Any text between a // and the end of a line is treated as a comment and is
ignored by JavaScript.
Any text between the characters /* and */ is treated as a comment. This may
span multiple lines.
JavaScript also recognizes the HTML comment opening sequence <!--.
JavaScript treats this as a single-line comment, just as it does the // comment.
The HTML comment closing sequence --> is not recognized by JavaScript so it
should be written as //-->.
Example
The following example shows how to use comments in JavaScript.
<!--
/*
//-->
</script>
All the modern browsers come with built-in support for JavaScript.
Frequently, you may need to enable or disable this support manually. This
chapter explains the procedure of enabling and disabling JavaScript support
in your browsers: Internet Explorer, Firefox, chrome, and Opera.
JavaScript in Firefox
Here are the steps to turn on or turn off JavaScript in Firefox −
JavaScript in Chrome
Here are the steps to turn on or turn off JavaScript in Chrome −
Click the Chrome menu at the top right hand corner of your browser.
Select Settings.
Click Show advanced settings at the end of the page.
Under the Privacy section, click the Content settings button.
In the "Javascript" section, select "Do not allow any site to run JavaScript" or
"Allow all sites to run JavaScript (recommended)".
JavaScript in Opera
Here are the steps to turn on or turn off JavaScript in Opera −
You can add a noscript block immediately after the script block as follows
−
<html>
<body>
<!--
document.write("Hello World!")
//-->
</script>
<noscript>
Sorry...JavaScript is needed to go ahead.
</noscript>
</body>
</html>
Now, if the user's browser does not support JavaScript or JavaScript is not
enabled, then the message from </noscript> will be displayed on the
screen.
<html>
<head>
<!--
function sayHello() {
alert("Hello World")
}
//-->
</script>
</head>
<body>
</body>
</html>
<html>
<head>
</head>
<body>
<!--
document.write("Hello World")
//-->
</script>
</html>
<html>
<head>
<!--
function sayHello() {
alert("Hello World")
//-->
</script>
</head>
<body>
<!--
document.write("Hello World")
//-->
</script>
</body>
</html>
Here is an example to show how you can include an external JavaScript file
in your HTML code using script tag and its srcattribute.
<html>
<head>
</head>
<body>
.......
</body>
</html>
To use JavaScript from an external file source, you need to write all your
JavaScript source code in a simple text file with the extension ".js" and then
include that file as shown above.
For example, you can keep the following content in filename.jsfile and
then you can use sayHello function in your HTML file after including the
filename.js file.
function sayHello() {
alert("Hello World")
}
JavaScript Datatypes
One of the most fundamental characteristics of a programming language is
the set of data types it supports. These are the type of values that can be
represented and manipulated in a programming language.
JavaScript also defines two trivial data types, null and undefined,each of
which defines only a single value. In addition to these primitive data types,
JavaScript supports a composite data type known as object. We will cover
objects in detail in a separate chapter.
Note − JavaScript does not make a distinction between integer values and
floating-point values. All numbers in JavaScript are represented as floating-
point values. JavaScript represents numbers using the 64-bit floating-point
format defined by the IEEE 754 standard.
JavaScript Variables
Like many other programming languages, JavaScript has variables.
Variables can be thought of as named containers. You can place data into
these containers and then refer to the data simply by naming the container.
Before you use a variable in a JavaScript program, you must declare it.
Variables are declared with the var keyword as follows.
<!--
var money;
var name;
//-->
</script>
You can also declare multiple variables with the same varkeyword as follows −
<script type = "text/javascript">
<!--
//-->
</script>
Storing a value in a variable is called variable initialization. You can do variable initialization
at the time of variable creation or at a later point in time when you need that variable.
For instance, you might create a variable named money and assign the value 2000.50 to it later.
For another variable, you can assign a value at the time of initialization as follows.
<!--
var money;
money = 2000.50;
//-->
</script>
Note − Use the var keyword only for declaration or initialization, once for the life of any
variable name in a document. You should not re-declare same variable twice.
JavaScript is untyped language. This means that a JavaScript variable can hold a value of any
data type. Unlike many other languages, you don't have to tell JavaScript during variable
declaration what type of value the variable will hold. The value type of a variable can change
during the execution of a program and JavaScript takes care of it automatically.
Global Variables − A global variable has global scope which means it can be defined
anywhere in your JavaScript code.
Local Variables − A local variable will be visible only within a function where it is
defined. Function parameters are always local to that function.
Within the body of a function, a local variable takes precedence over a global variable with the
same name. If you declare a local variable or function parameter with the same name as a global
variable, you effectively hide the global variable. Take a look into the following example.
Live Demo
<html>
<!--
function checkscope( ) {
document.write(myVar);
//-->
</script>
</body>
</html>
You should not use any of the JavaScript reserved keywords as a variable name. These
keywords are mentioned in the next section. For example, break or boolean variable
names are not valid.
JavaScript variable names should not start with a numeral (0-9). They must begin with a
letter or an underscore character. For example, 123test is an invalid variable name
but _123test is a valid one.
JavaScript variable names are case-sensitive. For example, Name and name are two
different variables.
double in super
What is an Operator?
Let us take a simple expression 4 + 5 is equal to 9. Here 4 and 5 are
called operands and ‘+’ is called the operator. JavaScript supports the
following types of operators.
Arithmetic Operators
Comparison Operators
Assignment Operators
Arithmetic Operators
Example
The following code shows how to use arithmetic operators in JavaScript.
Live Demo
<html>
<body>
<!--
var a = 33;
var b = 10;
var c = "Test";
result = a + b;
document.write(result);
document.write(linebreak);
document.write("a - b = ");
result = a - b;
document.write(result);
document.write(linebreak);
document.write("a / b = ");
result = a / b;
document.write(result);
document.write(linebreak);
document.write("a % b = ");
result = a % b;
document.write(result);
document.write(linebreak);
document.write("a + b + c = ");
result = a + b + c;
document.write(result);
document.write(linebreak);
a = ++a;
document.write("++a = ");
result = ++a;
document.write(result);
document.write(linebreak);
b = --b;
document.write("--b = ");
result = --b;
document.write(result);
document.write(linebreak);
//-->
</script>
</body>
</html>
Output
a + b = 43
a - b = 23
a / b = 3.3
a % b = 3
a + b + c = 43Test
++a = 35
--b = 8
Set the variables to different values and then try...
Comparison Operators
Example
The following code shows how to use comparison operators in JavaScript.
Live Demo
<html>
<body>
<script type = "text/javascript">
<!--
var a = 10;
var b = 20;
result = (a == b);
document.write(result);
document.write(linebreak);
document.write(result);
document.write(linebreak);
document.write(result);
document.write(linebreak);
result = (a != b);
document.write(result);
document.write(linebreak);
document.write(result);
document.write(linebreak);
document.write(result);
document.write(linebreak);
//-->
</script>
Set the variables to different values and different operators and then try...
</body>
</html>
Output
(a == b) => false
(a < b) => true
(a > b) => false
(a != b) => true
(a >= b) => false
a <= b) => true
Set the variables to different values and different operators and then try...
Logical Operators
Example
Try the following code to learn how to implement Logical Operators in
JavaScript.
Live Demo
<html>
<body>
var a = true;
var b = false;
document.write(result);
document.write(linebreak);
result = (a || b);
document.write(result);
document.write(linebreak);
document.write(result);
document.write(linebreak);
//-->
</script>
<p>Set the variables to different values and different operators and then
try...</p>
</body>
</html>
Output
(a && b) => false
(a || b) => true
!(a && b) => true
Set the variables to different values and different operators and then try...
Bitwise Operators
Example
Try the following code to implement Bitwise operator in JavaScript.
Live Demo
<html>
<body>
<!--
document.write(result);
document.write(linebreak);
result = (a | b);
document.write(result);
document.write(linebreak);
result = (a ^ b);
document.write(result);
document.write(linebreak);
result = (~b);
document.write(result);
document.write(linebreak);
document.write(result);
document.write(linebreak);
document.write(result);
document.write(linebreak);
//-->
</script>
<p>Set the variables to different values and different operators and then
try...</p>
</body>
</html>
(a & b) => 2
(a | b) => 3
(a ^ b) => 1
(~b) => -4
(a << b) => 16
(a >> b) => 0
Set the variables to different values and different operators and then try...
Assignment Operators
Example
Try the following code to implement assignment operator in JavaScript.
Live Demo
<html>
<body>
<!--
var a = 33;
var b = 10;
result = (a = b);
document.write(result);
document.write(linebreak);
result = (a += b);
document.write(result);
document.write(linebreak);
result = (a -= b);
document.write(result);
document.write(linebreak);
document.write(result);
document.write(linebreak);
result = (a /= b);
document.write(result);
document.write(linebreak);
result = (a %= b);
document.write(result);
document.write(linebreak);
//-->
</script>
<p>Set the variables to different values and different operators and then
try...</p>
</body>
</html>
Output
Value of a => (a = b) => 10
Value of a => (a += b) => 20
Value of a => (a -= b) => 10
Value of a => (a *= b) => 100
Value of a => (a /= b) => 10
Value of a => (a %= b) => 0
Set the variables to different values and different operators and then try...
Miscellaneous Operator
Conditional Operator (? :)
Example
Try the following code to understand how the Conditional Operator works in
JavaScript.
Live Demo
<html>
<body>
<!--
var a = 10;
var b = 20;
document.write(result);
document.write(linebreak);
document.write(result);
document.write(linebreak);
//-->
</script>
<p>Set the variables to different values and different operators and then
try...</p>
</body>
</html>
Output
((a > b) ? 100 : 200) => 200
((a < b) ? 100 : 200) => 100
Set the variables to different values and different operators and then try...
typeof Operator
The typeof operator is a unary operator that is placed before its single
operand, which can be of any type. Its value is a string indicating the data
type of the operand.
Number "number"
String "string"
Boolean "boolean"
Object "object"
Function "function"
Undefined "undefined"
Null "object"
Example
The following code shows how to implement typeof operator.
Live Demo
<html>
<body>
<!--
var a = 10;
var b = "String";
document.write(result);
document.write(linebreak);
document.write(result);
document.write(linebreak);
//-->
</script>
<p>Set the variables to different values and different operators and then
try...</p>
</body>
</html>
Output
Result => B is String
Result => A is Numeric
Set the variables to different values and different operators and then try...
Control Statements :
if statement
Example
Try the following example to understand how the if statement works.
Live Demo
<html>
<body>
<!--
//-->
</script>
</body>
</html>
Output
Qualifies for driving
Set the variable to different value and then try...
if...else statement
Example
Try the following code to learn how to implement an if-else statement in
JavaScript.
Live Demo
<html>
<body>
<!--
} else {
//-->
</script>
</body>
</html>
Output
Does not qualify for driving
Set the variable to different value and then try...
<html>
<body>
<!--
var book = "maths";
document.write("<b>History Book</b>");
document.write("<b>Maths Book</b>");
document.write("<b>Economics Book</b>");
} else {
document.write("<b>Unknown Book</b>");
//-->
</script>
</body>
<html>
Output
Maths Book
Set the variable to different value and then try...
switch statement
Example
Try the following example to implement switch-case statement.
Live Demo
<html>
<body>
<!--
switch (grade) {
break;
break;
break;
break;
break;
//-->
</script>
</body>
</html>
Output
Entering switch block
Good job
Exiting switch block
Set the variable to different value and then try...
<html>
<body>
<!--
var count = 0;
count++;
document.write("Loop stopped!");
//-->
</script>
</body>
</html>
Output
Starting Loop
Current Count : 0
Current Count : 1
Current Count : 2
Current Count : 3
Current Count : 4
Current Count : 5
Current Count : 6
Current Count : 7
Current Count : 8
Current Count : 9
Loop stopped!
Set the variable to different value and then try...
<html>
<body>
<!--
var count = 0;
do {
count++;
//-->
</script>
</body>
</html>
Output
Starting Loop
Current Count : 0
Current Count : 1
Current Count : 2
Current Count : 3
Current Count : 4
Loop Stopped!
Set the variable to different value and then try...
for loop
Example
Try the following example to learn how a for loop works in JavaScript.
Live Demo
<html>
<body>
<!--
var count;
document.write("<br />");
document.write("Loop stopped!");
//-->
</script>
<p>Set the variable to different value and then try...</p>
</body>
</html>
Output
Starting Loop
Current Count : 0
Current Count : 1
Current Count : 2
Current Count : 3
Current Count : 4
Current Count : 5
Current Count : 6
Current Count : 7
Current Count : 8
Current Count : 9
Loop stopped!
Set the variable to different value and then try...
for-in’ loop
Syntax
The syntax of ‘for..in’ loop is −
Example
Try the following example to implement ‘for-in’ loop. It prints the web
browser’s Navigator object.
Live Demo
<html>
<body>
<!--
var aProperty;
document.write(aProperty);
document.write("<br />");
//-->
</script>
</body>
</html>
Output
Navigator Object Properties
serviceWorker
webkitPersistentStorage
webkitTemporaryStorage
geolocation
doNotTrack
onLine
languages
language
userAgent
product
platform
appVersion
appName
appCodeName
hardwareConcurrency
maxTouchPoints
vendorSub
vendor
productSub
cookieEnabled
mimeTypes
plugins
javaEnabled
getStorageUpdates
getGamepads
webkitGetUserMedia
vibrate
getBattery
sendBeacon
registerProtocolHandler
unregisterProtocolHandler
Exiting from the loop!
Set the variable to different object and then try...
<html>
<body>
<!--
var x = 1;
if (x == 5) {
x = x + 1;
}
document.write("Exiting the loop!<br /> ");
//-->
</script>
</body>
</html>
Output
Entering the loop
2
3
4
5
Exiting the loop!
Set the variable to different value and then try...
<html>
<body>
<!--
var x = 1;
x = x + 1;
if (x == 5) {
//-->
</script>
</body>
</html>
Output
Entering the loop
2
3
4
6
7
8
9
10
Exiting the loop!
Set the variable to different value and then try...
<html>
<body>
<!--
document.write("Entering the loop!<br /> ");
innerloop:
//-->
</script>
</body>
</html>
Output
Entering the loop!
Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 2
Outerloop: 3
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 4
Exiting the loop!
Example 2
Live Demo
<html>
<body>
<!--
if (j == 3) {
continue outerloop;
//-->
</script>
</body>
</html>
Output
Entering the loop!
Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 2
Innerloop: 0
Innerloop: 1
Innerloop: 2
Exiting the loop!
Function Definition
Syntax
Example
Try the following example. It defines a function called sayHello that takes
no parameters −
<!--
function sayHello() {
alert("Hello there");
//-->
</script>
Calling a Function
Live Demo
<html>
<head>
function sayHello() {
</script>
</head>
<body>
<form>
</form>
</body>
</html>
Output
Function Parameters
Example
Try the following example. We have modified our sayHellofunction here.
Now it takes two parameters.
Live Demo
<html>
<head>
</script>
</head>
<body>
<form>
</form>
</body>
</html>
Output
The return Statement
Example
Try the following example. It defines a function that takes two parameters
and concatenates them before returning the resultant in the calling
program.
Live Demo
<html>
<head>
var full;
return full;
function secondFunction() {
var result;
document.write (result );
</script>
</head>
<body>
<form>
</form>
</body>
</html>
Output
There is a lot to learn about JavaScript functions, however we have covered
the most important concepts in this tutorial.
What is an Event ?
JavaScript's interaction with HTML is handled through events that occur
when the user or the browser manipulates a page.
When the page loads, it is called an event. When the user clicks a button,
that click too is an event. Other examples include events like pressing any
key, closing a window, resizing a window, etc.
Events are a part of the Document Object Model (DOM) Level 3 and every
HTML element contains a set of events which can trigger JavaScript Code.
Please go through this small tutorial for a better understanding HTML Event
Reference. Here we will see a few examples to understand a relation
between Event and JavaScript −
Example
Try the following example.
Live Demo
<html>
<head>
<!--
function sayHello() {
alert("Hello World")
//-->
</script>
</head>
<body>
<form>
</form>
</body>
</html>
Output
onsubmit Event Type
onsubmit is an event that occurs when you try to submit a form. You can
put your form validation against this event type.
Example
The following example shows how to use onsubmit. Here we are calling
a validate() function before submitting a form data to the webserver.
If validate() function returns true, the form will be submitted, otherwise it
will not submit the data.
<html>
<head>
<!--
function validation() {
.........
}
//-->
</script>
</head>
<body>
.......
</form>
</body>
</html>
<html>
<head>
<!--
function over() {
function out() {
}
//-->
</script>
</head>
<body>
</div>
</body>
</html>
Output
HTML 5 Standard Events
The standard HTML 5 events are listed here for your reference. Here script
indicates a Javascript function to be executed against that event.