- ES6 - Discussion
- ES6 - Useful Resources
- ES6 - Quick Guide
- ES9 - New Features
- ES8 - New Features
- ES7 - New Features
- ES6 - Browsers
- ES6 - Image Map
- ES6 - Debugging
- ES6 - Multimedia
- ES6 - Animation
- ES6 - Validations
- ES6 - Proxy API
- ES6 - Reflect API
- ES6 - Object Extensions
- ES6 - Error Handling
- ES6 - Modules
- ES6 - Promises
- ES6 - Maps And Sets
- ES6 - Classes
- ES6 - Collections
- ES6 - Iterator
- ES6 - HTML DOM
- ES6 - RegExp
- ES6 - Math
- ES6 - Date
- ES6 - Arrays
- ES6 - New String Methods
- ES6 - Symbol
- ES6 - Strings
- ES6 - Boolean
- ES6 - Number
- ES6 - Objects
- ES6 - Page Printing
- ES6 - Void Keyword
- ES6 - Dialog Boxes
- ES6 - Page Redirect
- ES6 - Cookies
- ES6 - Events
- ES6 - Functions
- ES6 - Loops
- ES6 - Decision Making
- ES6 - Operators
- ES6 - Variables
- ES6 - Syntax
- ES6 - Environment
- ES6 - Overview
- ES6 - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
ES6 - Quick Guide
ES6 - Overview
ECMAScript (ES) is a scripting language specification standardized by ECMAScript International. It is used by apppcations to enable cpent-side scripting. The specification is influenced by programming languages pke Self, Perl, Python, Java etc. Languages pke JavaScript, Jscript and ActionScript are governed by this specification.
This tutorial introduces you to ES6 implementation in JavaScript.
JavaScript
JavaScript was developed by Brendan Eich, a developer at Netscape Communications Corporation, in 1995.JavaScript started pfe with the name Mocha, and was briefly named LiveScript before being officially renamed to JavaScript. It is a scripting language that is executed by the browser, i.e. on the cpent’s end. It is used in conjunction with HTML to develop responsive webpages.
ECMA Script6’s implementation discussed here covers the following new features −
Support for constants
Block Scope
Arrow Functions
Extended Parameter Handpng
Template Literals
Extended Literals
Enhanced Object Properties
De-structuring Assignment
Modules
Classes
Iterators
Generators
Collections
New built in methods for various classes
Promises
ECMAScript Versions
There are nine editions of ECMA-262 which are as follows −
Edition | Name | Description |
---|---|---|
1 | ECMAScript 1 | First Edition released in 1997 |
2 | ECMAScript 2 | Second Edition released in 1998, minor changes to meet ISO/IEC 16262 standard |
3 | ECMAScript 3 | Third Edition released in 1999 with language enhancements |
4 | ECMAScript 4 | Fourth Edition release plan was dropped, few features added later in ES6 & other complex features dropped |
5 | ECMAScript 5 | Fifth Edition released in 2009 |
5.1 | ECMAScript 5.1 | 5.1 Edition released in 2011, minor changes to meet ISO/IEC 16262:2011 standard |
6 | ECMAScript 2015/ES6 | Sixth Edition released in 2015, see ES6 chapters for new features |
7 | ECMAScript 2016/ES7 | Seventh Edition released in 2016, see ES7 chapters for new features |
8 | ECMAScript 2017/ES8 | Eight Edition released in 2017, see ES8 chapters for new features |
9 | ECMAScript 2018/ES9 | Ninth Edition released in 2018, see ES9 chapters for new features |
ES6 - Environment
In this chapter, we will discuss the setting up of the environment for ES6.
Local Environment Setup
JavaScript can run on any browser, any host, and any OS. You will need the following to write and test a JavaScript program standard −
Text Editor
The text editor helps you to write your source code. Examples of few editors include Windows Notepad, Notepad++, Emacs, vim or vi etc. Editors used may vary with the operating systems. The source files are typically named with the extension.js
Instalpng Node.js
Node.js is an open source, cross-platform runtime environment for server-side JavaScript. Node.js is required to run JavaScript without a browser support. It uses Google V8 JavaScript engine to execute the code. You may download Node.js source code or a pre-built installer for your platform. Node is available at
Installation on Windows
Download and run the .msi installer for Node
To verify if the installation was successful, enter the command node –v in the terminal window.
Installation on Mac OS X
To install node.js on OS X you can download a pre-compiled binary package which makes a nice and easy installation. Head over to
and cpck the install button to download the latest package.Install the package from the .dmg by following along the install wizard which will install both node and npm. npm is the Node Package Manager which faciptates installs of additional packages for Node.js.
Installation on Linux
You need to install a number of dependencies before you can install Node.js and npm.
Ruby and GCC. You’ll need Ruby 1.8.6 or newer and GCC 4.2 or newer
Homebrew. Homebrew is a package manager originally for the Mac, but it’s been ported to Linux as Linuxbrew. You can learn more about Homebrew at the
at the .Integrated Development Environment (IDE) Support
JavaScript can be built on a plethora of development environments pke Visual Studio, Subpme Text 2, WebStorm/PHPStorm, Ecppse, Brackets, etc. The Visual Studio Code and Brackets IDE is discussed in this section. The development environment used here is Visual Studio Code (Windows platform).
Visual Studio Code
This is open source IDE from Visual Studio. It is available for Mac OS X, Linux, and Windows platforms. VScode is available at
.Installation on Windows
Download Visual Studio Code for Windows.
Double-cpck on VSCodeSetup.exe to launch the setup process. This will only take a minute.
Following is the screenshot of the IDE.
You may directly traverse to the file’s path by a right-cpck on the file → open in command prompt. Similarly, the Reveal in Explorer option shows the file in the File Explorer.
Installation on Mac OS X
Visual Studio Code’s Mac OS X specific installation guide can be found at
Installation on Linux
Linux specific installation guide for Visual Studio Code can be found at
Brackets
Brackets is a free open-source editor for web development, created by Adobe Systems. It is available for Linux, Windows and Mac OS X. Brackets is available at
.You can run DOS prompt/Shell within Brackets itself by adding one more extension Brackets Shell.
Upon installation, you will find an icon of shell on the right hand side of the editor . Once you cpck on the icon, you will see the shell window as shown in the following screenshot.
You are all set!!!
ES6 - Syntax
Syntax defines the set of rules for writing programs. Every language specification defines its own syntax.
A JavaScript program can be composed of −
Variables − Represents a named memory block that can store values for the program.
Literals − Represents constant/fixed values.
Operators − Symbols that define how the operands will be processed.
Keywords − Words that have a special meaning in the context of a language.
The following table psts some keywords in JavaScript. Some commonly used keywords are psted in the following table.
break | as | any | Switch |
case | if | throw | Else |
var | number | string | Get |
module | type | instanceof | Typeof |
finally | for | enum | Export |
while | void | this | New |
null | super | Catch | let |
static | return | True | False |
Modules − Represents code blocks that can be reused across different programs/scripts.
Comments − Used to improve code readabipty. These are ignored by the JavaScript engine.
Identifiers − These are the names given to elements in a program pke variables, functions, etc. The rules for identifiers are −
Identifiers can include both, characters and digits. However, the identifier cannot begin with a digit.
Identifiers cannot include special symbols except for underscore (_) or a dollar sign ($).
Identifiers cannot be keywords. They must be unique.
Identifiers are case sensitive. Identifiers cannot contain spaces.
The following table illustrates some vapd and invapd identifiers.
Examples of vapd identifiers | Examples of invapd identifiers |
---|---|
firstName first_name num1 $result |
Var# first name first-name 1number |
Whitespace and Line Breaks
ES6 ignores spaces, tabs, and newpnes that appear in programs. You can use spaces, tabs, and newpnes freely in your program and you are free to format and indent your programs in a neat and consistent way that makes the code easy to read and understand.
JavaScript is Case-sensitive
JavaScript is case-sensitive. This means that JavaScript differentiates between the uppercase and the lowercase characters.
Semicolons are Optional
Each pne of instruction is called a statement. Semicolons are optional in JavaScript.
Example
console.log("hello world") console.log("We are learning ES6")
A single pne can contain multiple statements. However, these statements must be separated by a semicolon.
Comments in JavaScript
Comments are a way to improve the readabipty of a program. Comments can be used to include additional information about a program pke the author of the code, hints about a function/construct, etc. Comments are ignored by the compiler.
JavaScript supports the following types of comments −
Single-pne comments (//) − Any text between a // and the end of a pne is treated as a comment.
Multi-pne comments (/* */) − These comments may span multiple pnes.
Example
//this is single pne comment /* This is a Multi-pne comment */
Your First JavaScript Code
Let us start with the traditional “Hello World” example".
var message = "Hello World" console.log(message)
The program can be analyzed as −
Line 1 declares a variable by the name message. Variables are a mechanism to store values in a program.
Line 2 prints the variable’s value to the prompt. Here, the console refers to the terminal window. The function log () is used to display the text on the screen.
Executing the Code
We shall use Node.js to execute our code.
Step 1 − Save the file as Test.js
Step 2 − Right-cpck the Test.js file under the working files option in the project-explorer window of the Visual Studio Code.
Step 3 − Select Open in Command Prompt option.
Step 4 − Type the following command in Node’s terminal window.
node Test.js
The following output is displayed on successful execution of the file.
Hello World
Node.js and JS/ES6
ECMAScript 2015(ES6) features are classified into three groups −
For Shipping − These are features that V8 considers stable.
Staged Features − These are almost completed features but not considered stable by the V8 team.
In Progress − These features should be used only for testing purposes.
The first category of features is fully supported and turned on by default by node. Staged features require a runtime - - harmony flag to execute.
A pst of component specific CLI flags for Node.js can be found here −
The Strict Mode
The fifth edition of the ECMAScript specification introduced the Strict Mode. The Strict Mode imposes a layer of constraint on JavaScript. It makes several changes to normal JavaScript semantics.
The code can be transitioned to work in the Strict Mode by including the following −
// Whole-script strict mode syntax "use strict"; v = "Hi! I m a strict mode script!"; // ERROR: Variable v is not declared
In the above snippet, the entire code runs as a constrained variant of JavaScript.
JavaScript also allows to restrict, the Strict Mode within a block’s scope as that of a function. This is illustrated as follows −
v = 15 function f1() { "use strict"; var v = "Hi! I m a strict mode script!"; }
In, the above snippet, any code outside the function will run in the non-strict mode. All statements within the function will be executed in the Strict Mode.
ES6 and Hoisting
The JavaScript engine, by default, moves declarations to the top. This feature is termed as hoisting. This feature apppes to variables and functions. Hoisting allows JavaScript to use a component before it has been declared. However, the concept of hoisting does not apply to scripts that are run in the Strict Mode.
Variable Hoisting and Function Hoisting are explained in the subsequent chapters.
ES6 - Variables
A variable, by definition, is “a named space in the memory” that stores values. In other words, it acts as a container for values in a program. Variable names are called identifiers. Following are the naming rules for an identifier −
Identifiers cannot be keywords.
Identifiers can contain alphabets and numbers.
Identifiers cannot contain spaces and special characters, except the underscore (_) and the dollar ($) sign.
Variable names cannot begin with a number.
Type Syntax
A variable must be declared before it is used. ES5 syntax used the var keyword to achieve the same. The ES5 syntax for declaring a variable is as follows.
//Declaration using var keyword var variable_name
ES6 introduces the following variable declaration syntax −
Using the let.
Using the const.
Variable initiapzation refers to the process of storing a value in the variable. A variable may be initiapzed either at the time of its declaration or at a later point in time.
The traditional ES5 type syntax for declaring and initiapzing a variable is as follows −
//Declaration using var keyword var variable_name = value
Example : Using Variables
var name = "Tom" console.log("The value in the variable is: "+name)
The above example declares a variable and prints its value.
The following output is displayed on successful execution.
The value in the variable is Tom
JavaScript and Dynamic Typing
JavaScript is an un-typed language. This means that a JavaScript variable can hold a value of any data type. Unpke 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. This feature is termed as dynamic typing.
JavaScriptVariable Scope
The scope of a variable is the region of your program in which it is defined. Traditionally, JavaScript defines only two scopes-global and local.
Global Scope − A variable with global scope can be accessed from within any part of the JavaScript code.
Local Scope − A variable with a local scope can be accessed from within a function where it is declared.
Example : Global vs. Local Variable
The following example declares two variables by the name num - one outside the function (global scope) and the other within the function (local scope).
var num = 10 function test() { var num = 100 console.log("value of num in test() "+num) } console.log("value of num outside test() "+num) test()
The variable when referred to within the function displays the value of the locally scoped variable. However, the variable num when accessed outside the function returns the globally scoped instance.
The following output is displayed on successful execution.
value of num outside test() 10 value of num in test() 100
ES6 defines a new variable scope - The Block scope.
The Let and Block Scope
The block scope restricts a variable’s access to the block in which it is declared. The var keyword assigns a function scope to the variable. Unpke the var keyword, the let keyword allows the script to restrict access to the variable to the nearest enclosing block.
"use strict" function test() { var num = 100 console.log("value of num in test() "+num) { console.log("Inner Block begins") let num = 200 console.log("value of num : "+num) } } test()
The script declares a variable num within the local scope of a function and re-declares it within a block using the let keyword. The value of the locally scoped variable is printed when the variable is accessed outside the inner block, while the block scoped variable is referred to within the inner block.
Note − The strict mode is a way to opt in to a restricted variant of JavaScript.
The following output is displayed on successful execution.
value of num in test() 100 Inner Block begins value of num : 200
Example: let v/s var
var no = 10; var no = 20; console.log(no);
The following output is displayed on successful execution of the above code.
20
Let us re-write the same code using the let keyword.
let no = 10; let no = 20; console.log(no);
The above code will throw an error: Identifier no has already been declared. Any variable declared using the let keyword is assigned the block scope.
let and block level safety
If we try to declare a let variable twice within the same block, it will throw an error. Consider the following example −
<script> let balance = 5000 // number type console.log(typeof balance) let balance = {message:"hello"} // changing number to object type console.log(typeof balance) </script>
The above code will result in the following error −
Uncaught SyntaxError: Identifier balance has already been declared
let and multiple blocks
However, the same let variable can be used in different block level scopes without any syntax errors.
Example
<script> let count = 100 for (let count = 1;count <= 10;count++){ //inside for loop brackets ,count value starts from 1 console.log("count value inside loop is ",count); } //outside for loop brackets ,count value is 100 console.log("count value after loop is",count); if(count == 100){ //inside if brackets ,count value is 50 let count = 50; console.log("count inside if block",count); } console.log(count); </script>
The output of the above code will be as follows −
count value inside loop is 1 count value inside loop is 2 count value inside loop is 3 count value inside loop is 4 count value inside loop is 5 count value inside loop is 6 count value inside loop is 7 count value inside loop is 8 count value inside loop is 9 count value inside loop is 10 count value after loop is 100 count inside if block 50 100
The const
The const declaration creates a read-only reference to a value. It does not mean the value it holds is immutable, just that the variable identifier cannot be reassigned. Constants are block-scoped, much pke variables defined using the let statement. The value of a constant cannot change through re-assignment, and it can t be re-declared.
The following rules hold true for a variable declared using the const keyword −
Constants cannot be reassigned a value.
A constant cannot be re-declared.
A constant requires an initiapzer. This means constants must be initiapzed during its declaration.
The value assigned to a const variable is mutable.
Example
const x = 10 x = 12 // will result in an error!!
The above code will return an error since constants cannot be reassigned a value. Constants variable are immutable.
Constants are Immutable
Unpke variables declared using let keyword, constants are immutable. This means its value cannot be changed. For example, if we try to change value of the constant variable, an error will be displayed.
<script> let income = 100000 const INTEREST_RATE = 0.08 income += 50000 // mutable console.log("changed income value is ",income) INTEREST_RATE += 0.01 console.log("changed rate is ",INTEREST_RATE) //Error: not mutable </script>
The output of the above code will be as follows −
changed income value is 150000 Uncaught TypeError: Assignment to constant variable
const and arrays
The following example shows how to create an immutable array. New elements can be added to the array. However, reinitiapzing the array will result in an error as shown below −
<script> const DEPT_NOS = [10,20,30,50] DEPT_NOS.push(40) console.log( dept numbers is ,DEPT_NOS) const EMP_IDS = [1001,1002,1003] console.log( employee ids ,EMP_IDS) //re assigning variable employee ids EMP_IDS = [2001,2002,2003] console.log( employee ids after changing ,EMP_IDS) </script>
The output of the above code will be as shown below −
dept numbers is (5) [10, 20, 30, 50, 40] employee ids (3) [1001, 1002, 1003] Uncaught TypeError: Assignment to constant variable.
The var keyword
Prior to ES6, the var keyword was used to declare a variable in JavaScript. Variables declared using var do not support block level scope. This means if a variable is declared in a loop or if block it can be accessed outside the loop or the if block. This is because the variables declared using the var keyword support hoisting.
var and hoisting
Variable hoisting allows the use of a variable in a JavaScript program, even before it is declared. Such variables will be initiapzed to undefined by default. JavaScript runtime will scan for variable declarations and put them to the top of the function or script. Variables declared with var keyword get hoisted to the top. Consider the following example −
<script> variable company is hoisted to top , var company = undefined console.log(company); // using variable before declaring var company = "TutorialsPoint"; // declare and initiapzed here console.log(company); </script>
The output of the above code will be as shown below −
undefined TutorialsPoint
var and block scope
The block scope restricts a variable’s access to the block in which it is declared. The var keyword assigns a function scope to the variable. Variables declared using the var keyword do not have a block scope. Consider the following example −
<script> //hoisted to top ; var i = undefined for (var i = 1;i <= 5;i++){ console.log(i); } console.log("after the loop i value is "+i); </script>
The output of the above code will be as follows −
1 2 3 4 5 after the loop i value is 6
The variable i is declared inside the for loop using the var keyword. The variable i is accessible outside the loop. However, at times, there might be a need to restrict a variable s access within a block. We cannot use the var keyword in this scenario. ES6 introduces the let keyword to overcome this pmitation.
var and block level safety
If we declare the same variable twice using the var keyword within a block, the compiler will not throw an error. However, this may lead to unexpected logical errors at runtime.
<script> var balance = 5000 console.log(typeof balance) var balance = {message:"hello"} console.log(typeof balance) </script>
The output of the above code is as shown below −
number object
ES6 - Operators
An expression is a special kind of statement that evaluates to a value. Every expression is composed of −
Operands − Represents the data.
Operator − Defines how the operands will be processed to produce a value.
Consider the following expression- 2 + 3. Here in the expression, 2 and 3 are operands and the symbol + (plus) is the operator. JavaScript supports the following types of operators −
Arithmetic operators
Logical operators
Relational operators
Bitwise operators
Assignment operators
Ternary/conditional operators
String operators
Type operators
The void operator
Arithmetic Operators
Assume the values in variables a and b are 10 and 5 respectively.
Operator | Function | Example |
---|---|---|
+ | Addition
Returns the sum of the operands. |
a + b is 15 |
- | Subtraction
Returns the difference of the values. |
a-b is 5 |
* | Multippcation
Returns the product of the values. |
a*b is 50 |
/ | Division
Performs a spanision operation and returns the quotient. |
a/b is 2 |
% | Modulus
Performs a spanision and returns the remainder. |
a%b is 0 |
++ | Increment
Increments the value of the variable by one. |
a++ is 11 |
-- | Decrement
Decrements the value of the variable by one. |
a-- is 9 |
Relational Operators
Relational operators test or define the kind of relationship between two entities. Relational operators return a boolean value, i.e. true/false.
Assume the value of A is 10 and B is 20.
Operators | Description | Example |
---|---|---|
> | Greater than | (A > B) is False |
< | Lesser than | (A < B) is True |
>= | Greater than or equal to | (A >= B) is False |
<= | Lesser than or equal to | (A <= B) is True |
== | Equapty | (A == B) is False |
!= | Not Equal | (A!= B) is True |
Logical Operators
Logical operators are used to combine two or more conditions. Logical operators, too, return a Boolean value. Assume the value of variable A is 10 and B is 20.
.
Operators | Description | Example |
---|---|---|
&& |
And
The operator returns true only if all the expressions specified return true. |
(A > 10 && B > 10) is False |
|| |
Or
The operator returns true if at least one of the expressions specified return true. |
(A > 10 || B > 10) is True |
! |
Not
The operator returns the inverse of the expression’s result. For E.g.: !(7>5) returns false. |
!(A > 10) is True |
Bitwise Operators
JavaScript supports the following bitwise operators. The following table summarizes JavaScript s bitwise operators.
.
Operators | Usage | Description |
---|---|---|
Bitwise AND | a & b | Returns a one in each bit position for which the corresponding bits of both operands are ones |
Bitwise OR | a | b | Returns a one in each bit position for which the corresponding bits of either or both operands are ones |
Bitwise XOR | a^b | Returns a one in each bit position for which the corresponding bits of either but not both operands are ones |
Bitwise NOT | ~ a | Inverts the bits of its operand |
Left shift | a << b | Shifts a in binary representation b (< 32) bits to the left, shifting in zeroes from the right |
Sign-propagating right shift | a >> b | Shifts a in binary representation b (< 32) bits to the right, discarding bits shifted off |
Zero-fill right shift | a >>> b | Shifts a in binary representation b (< 32) bits to the right, discarding bits shifted off, and shifting in zeroes from the left |
Assignment Operators
The following table summarizes Assignment operators.
.
Sr.No | Operator & Description |
---|---|
1 |
= (Simple Assignment) Assigns values from the right side operand to the left side operand. Example − C = A + B will assign the value of A + B into C |
2 |
+= (Add and Assignment) It adds the right operand to the left operand and assigns the result to the left operand. Example − C += A is equivalent to C = C + A |
3 |
-= (Subtract and Assignment) It subtracts the right operand from the left operand and assigns the result to the left operand. Example C -= A is equivalent to C = C - A |
4 |
*= (Multiply and Assignment) It multippes the right operand with the left operand and assigns the result to the left operand. Example C *= A is equivalent to C = C * A |
5 |
/= (Divide and Assignment) It spanides the left operand with the right operand and assigns the result to the left operand. |
Note − The same logic apppes to Bitwise operators, so they will become <<=, >>=, >>=, &=, |= and ^=.
Miscellaneous Operators
Following are some of the miscellaneous operators.
The negation operator (-)
Changes the sign of a value. The following program is an example of the same.
var x = 4 var y = -x; console.log("value of x: ",x); //outputs 4 console.log("value of y: ",y); //outputs -4
The following output is displayed on successful execution of the above program.
value of x: 4 value of y: -4
String Operators : Concatenation operator (+)
The + operator when appped to strings appends the second string to the first. The following program helps to understand this concept.
var msg = "hello"+"world" console.log(msg)
The following output is displayed on successful execution of the above program.
helloworld
The concatenation operation doesn’t add a space between the strings. Multiple strings can be concatenated in a single statement.
Conditional Operator (?)
This operator is used to represent a conditional expression. The conditional operator is also sometimes referred to as the ternary operator. Following is the syntax.
Test ? expr1 : expr2
Where,
Test − Refers to the conditional expression
expr1 − Value returned if the condition is true
expr2 − Value returned if the condition is false
Example
var num = -2 var result = num > 0 ?"positive":"non-positive" console.log(result)
Line 2 checks whether the value in the variable num is greater than zero. If num is set to a value greater than zero, it returns the string “positive” else a “non-positive” string is returned.
The following output is displayed on successful execution of the above program.
non-positive
typeof operator
It is a unary operator. This operator returns the data type of the operand. The following table psts the data types and the values returned by the typeof operator in JavaScript.
Type | String Returned by typeof |
---|---|
Number | "number" |
String | "string" |
Boolean | "boolean" |
Object | "object" |
The following example code displays the number as the output.
var num = 12 console.log(typeof num); //output: number
The following output is displayed on successful execution of the above code.
number
Spread Operator
ES6 provides a new operator called the spread operator. The spread operator is represented by three dots “...” . The spread operator converts an array into inspanidual array elements.
Spread operator and function
The following example illustrates the use of spread operators in a function
<script> function addThreeNumbers(a,b,c){ return a+b+c; } const arr = [10,20,30] console.log( sum is : ,addThreeNumbers(...arr)) console.log( sum is ,addThreeNumbers(...[1,2,3])) </script>
The output of the above code will be as seen below −
sum is : 60 sum is 6
Spread operator and Array copy and concat
The spread operator can be used to copy one array into another. It can also be used to concatenate two or more arrays. This is shown in the example below −
Example
<script> //copy array using spread operator let source_arr = [10,20,30] let dest_arr = [...source_arr] console.log(dest_arr) //concatenate two arrays let arr1 = [10,20,30] let arr2 =[40,50,60] let arr3 = [...arr1,...arr2] console.log(arr3) </script>
The output of the above code will be as stated below −
[10, 20, 30] [10, 20, 30, 40, 50, 60]
Spread Operator and Object copy and concatenation
The spread operator can be used to copy one object into another. It can also be used to concatenate two or more objects. This is shown in the example below −
<script> //copy object let student1 ={firstName: Mohtashim ,company: TutorialsPoint } let student2 ={...student1} console.log(student2) //concatenate objects let student3 = {lastName: Mohammad } let student4 = {...student1,...student3} console.log(student4) </script>
The output of the above code will be as given below −
{firstName: "Mohtashim", company: "TutorialsPoint"} {firstName: "Mohtashim", company: "TutorialsPoint", lastName: "Mohammad"}
ES6 - Decision Making
A conditional/decision-making construct evaluates a condition before the instruction/s are executed.
Conditional constructs in JavaScript are classified in the following table.
Sr.No | Statement & Description |
---|---|
1 | An ‘if’ statement consists of a Boolean expression followed by one or more statements . |
2 | An ‘if’ statement can be followed by an optional ‘else’ statement, which executes when the Boolean expression is false. |
3 | The else…if ladder is useful to test multiple conditions. Following is the syntax of the same. |
4 | The switch statement evaluates an expression, matches the expression’s value to a case clause and executes the statements associated with that case. |
ES6 - Loops
At times, certain instructions require repeated execution. Loops are an ideal way to do the same. A loop represents a set of instructions that must be repeated. In a loop’s context, a repetition is termed as an iteration.
The following figure illustrates the classification of loops −
Definite Loop
A loop whose number of iterations are definite/fixed is termed as a definite loop. The ‘for loop’ is an implementation of a definite loop.
for (initial_count_value; termination-condition; step) { //statements }
Sr.No | Definite Loop & Description |
---|---|
1 | The for loop executes the code block for a specified number of times. |
2 | The for...in loop is used to loop through an object s properties. |
3 | The for…of loop is used to iterate iterables instead of object pterals. |
Indefinite Loop
An indefinite loop is used when the number of iterations in a loop is indeterminate or unknown.
Indefinite loops can be implemented using −
Sr.No | Indefinite Loop & Description |
---|---|
1 | The while loop executes the instructions each time the condition specified evaluates to true. |
2 | The do…while loop is similar to the while loop except that the do...while loop doesn’t evaluate the condition for the first time the loop executes. |
The Loop Control Statements
Sr.No | Loop Control Statements & Description |
---|---|
1 | The break statement is used to take the control out of a construct. |
2 | The continue statement skips the subsequent statements in the current iteration and takes the control back to the beginning of the loop. |
Using Labels to Control the Flow
A label is simply an identifier followed by a colon (:) that is appped to a statement or a block of code. A label can be used with break and continue to control the flow more precisely.
Line breaks are not allowed between the ‘continue’ or ‘break’ statement and its label name. Also, there should not be any other statement in between a label name and an associated loop
Sr.No | Label & Description |
---|---|
1 | A label can be used with break and continue to control the flow more precisely. |
2 | Line breaks are not allowed between the ‘continue’ or ‘break’ statement and its label name. |
ES6 - Functions
Functions are the building blocks of readable, maintainable, and reusable code. Functions are defined using the function keyword. Following is the syntax for defining a standard function.
function function_name() { // function body }
To force execution of the function, it must be called. This is called as function invocation. Following is the syntax to invoke a function.
function_name()
Example : Simple function definition
//define a function function test() { console.log("function called") } //call the function test()
The example defines a function test(). A pair of depmiters ( { } ) define the function body. It is also called as the function scope. A function must be invoked to force its execution.
The following output is displayed on successful execution of the above code.
function called
Classification of Functions
Functions may be classified as Returning and Parameterized functions.
Returning functions
Functions may also return the value along with control, back to the caller. Such functions are called as returning functions.
Following is the syntax for the returning function.
function function_name() { //statements return value; }
A returning function must end with a return statement.
A function can return at the most one value. In other words, there can be only one return statement per function.
The return statement should be the last statement in the function.
The following code snippet is an example of a returning function −
function retStr() { return "hello world!!!" } var val = retStr() console.log(val)
The above Example defines a function that returns the string “hello world!!!” to the caller. The following output is displayed on successful execution of the above code.
hello world!!!
Parameterized functions
Parameters are a mechanism to pass values to functions. Parameters form a part of the function’s signature. The parameter values are passed to the function during its invocation. Unless exppcitly specified, the number of values passed to a function must match the number of parameters defined.
Following is the syntax defining a parameterized function.
function func_name( param1,param2 ,…..paramN) { ...... ...... }
Example − Parameterized Function
The Example defines a function add that accepts two parameters n1 and n2 and prints their sum. The parameter values are passed to the function when it is invoked.
function add( n1,n2) { var sum = n1 + n2 console.log("The sum of the values entered "+sum) } add(12,13)
The following output is displayed on successful execution of the above code.
The sum of the values entered 25
Default function parameters
In ES6, a function allows the parameters to be initiapzed with default values, if no values are passed to it or it is undefined. The same is illustrated in the following code.
function add(a, b = 1) { return a+b; } console.log(add(4))
The above function, sets the value of b to 1 by default. The function will always consider the parameter b to bear the value 1 unless a value has been exppcitly passed. The following output is displayed on successful execution of the above code.
5
The parameter’s default value will be overwritten if the function passes a value exppcitly.
function add(a, b = 1) { return a + b; } console.log(add(4,2))
The above code sets the value of the parameter b exppcitly to 2, thereby overwriting its default value. The following output is displayed on successful execution of the above code.
6
For better understanding, let us consider the below example.
Example 1
The following example shows a function which takes two parameters and returns their sum. The second parameter has a default value of 10. This means, if no value is passed to the second parameter, its value will be 10.
<script> function addTwoNumbers(first,second = 10){ console.log( first parameter is : ,first) console.log( second parameter is : ,second) return first+second; } console.log("case 1 sum:",addTwoNumbers(20)) // no value console.log("case 2 sum:",addTwoNumbers(2,3)) console.log("case 3 sum:",addTwoNumbers()) console.log("case 4 sum",addTwoNumbers(1,null))//null passed console.log("case 5 sum",addTwoNumbers(3,undefined)) </script>
The output of the above code will be as mentioned below −
first parameter is : 20 second parameter is : 10 case 1 sum: 30 first parameter is : 2 second parameter is : 3 case 2 sum: 5 first parameter is : undefined second parameter is : 10 case 3 sum: NaN first parameter is : 1 second parameter is : null case 4 sum 1 first parameter is : 3 second parameter is : 10 case 5 sum 13
Example 2
<script> let DEFAULT_VAL = 30 function addTwoNumbers(first,second = DEFAULT_VAL){ console.log( first parameter is : ,first) console.log( second parameter is : ,second) return first+second; } console.log("case 1 sum",addTwoNumbers(1)) console.log("case 2 sum",addTwoNumbers(3,undefined)) </script>
The output of the above code will be as shown below −
first parameter is : 1 second parameter is : 30 case 1 sum 31 first parameter is : 3 second parameter is : 30 case 2 sum 33
Rest Parameters
Rest parameters are similar to variable arguments in Java. Rest parameters doesn’t restrict the number of values that you can pass to a function. However, the values passed must all be of the same type. In other words, rest parameters act as placeholders for multiple arguments of the same type.
To declare a rest parameter, the parameter name is prefixed with three periods, known as the spread operator. The following example illustrates the same.
function fun1(...params) { console.log(params.length); } fun1(); fun1(5); fun1(5, 6, 7);
The following output is displayed on successful execution of the above code.
0 1 3
Note − Rest parameters should be the last in a function’s parameter pst.
Anonymous Function
Functions that are not bound to an identifier (function name) are called as anonymous functions. These functions are dynamically declared at runtime. Anonymous functions can accept inputs and return outputs, just as standard functions do. An anonymous function is usually not accessible after its initial creation.
Variables can be assigned an anonymous function. Such an expression is called a function expression.
Following is the syntax for anonymous function.
var res = function( [arguments] ) { ... }
Example − Anonymous Function
var f = function(){ return "hello"} console.log(f())
The following output is displayed on successful execution of the above code.
hello
Example − Anonymous Parameterized Function
var func = function(x,y){ return x*y }; function product() { var result; result = func(10,20); console.log("The product : "+result) } product()
The following output is displayed on successful execution of the above code.
The product : 200
The Function Constructor
The function statement is not the only way to define a new function; you can define your function dynamically using Function() constructor along with the new operator.
Following is the syntax to create a function using Function() constructor along with the new operator.
var variablename = new Function(Arg1, Arg2..., "Function Body");
The Function() constructor expects any number of string arguments. The last argument is the body of the function – it can contain arbitrary JavaScript statements, separated from each other by semicolons.
The Function() constructor is not passed any argument that specifies a name for the function it creates.
Example − Function Constructor
var func = new Function("x", "y", "return x*y;"); function product() { var result; result = func(10,20); console.log("The product : "+result) } product()
In the above example, the Function() constructor is used to define an anonymous function. The function accepts two parameters and returns their product.
The following output is displayed on successful execution of the above code.
The product : 200
Recursion and JavaScript Functions
Recursion is a technique for iterating over an operation by having a function call itself repeatedly until it arrives at a result. Recursion is best appped when you need to call the same function repeatedly with different parameters from within a loop.
Example − Recursion
function factorial(num) { if(num <= 0) { return 1; } else { return (num * factorial(num-1) ) } } console.log(factorial(6))
In the above example the function calls itself. The following output is displayed on successful execution of the above code.
720
Example − Anonymous Recursive Function
(function() { var msg = "Hello World" console.log(msg) })()
The function calls itself using a pair of parentheses (). The following output is displayed on successful execution of the above code.
Hello World
Lambda Functions
Lambda refers to anonymous functions in programming. Lambda functions are a concise mechanism to represent anonymous functions. These functions are also called as Arrow functions.
Lambda Function - Anatomy
There are 3 parts to a Lambda function −
Parameters − A function may optionally have parameters.
The fat arrow notation/lambda notation (=>): It is also called as the goes to operator.
Statements − Represents the function’s instruction set.
Tip − By convention, the use of a single letter parameter is encouraged for a compact and precise function declaration.
Lambda Expression
It is an anonymous function expression that points to a single pne of code. Following is the syntax for the same.
([param1, parma2,…param n] )=>statement;
Example − Lambda Expression
var foo = (x)=>10+x console.log(foo(10))
The Example declares a lambda expression function. The function returns the sum of 10 and the argument passed.
The following output is displayed on successful execution of the above code.
20
Lambda Statement
It is an anonymous function declaration that points to a block of code. This syntax is used when the function body spans multiple pnes. Following is the syntax of the same.
( [param1, parma2,…param n] )=> { //code block }
Example − Lambda Statement
var msg = ()=> { console.log("function invoked") } msg()
The function’s reference is returned and stored in the variable msg. The following output is displayed on successful execution of the above code.
function invoked
Syntactic Variations
Optional parentheses for a single parameter.
var msg = x=> { console.log(x) } msg(10)
Optional braces for a single statement. Empty parentheses for no parameter.
var disp = ()=>console.log("Hello World") disp();
Function Expression and Function Declaration
Function expression and function declaration are not synonymous. Unpke a function expression, a function declaration is bound by the function name.
The fundamental difference between the two is that, function declarations are parsed before their execution. On the other hand, function expressions are parsed only when the script engine encounters it during an execution.
When the JavaScript parser sees a function in the main code flow, it assumes function declaration. When a function comes as a part of a statement, it is a function expression.
Function Hoisting
Like variables, functions can also be hoisted. Unpke variables, function declarations when hoisted, hoists the function definition rather than just hoisting the function’s name.
The following code snippet, illustrates function hoisting in JavaScript.
hoist_function(); function hoist_function() { console.log("foo"); }
The following output is displayed on successful execution of the above code.
foo
However, function expressions cannot be hoisted. The following code snippet illustrates the same.
hoist_function(); // TypeError: hoist_function() is not a function var hoist_function() = function() { console.log("bar"); };
Immediately Invoked Function Expression
Immediately Invoked Function Expressions (IIFEs) can be used to avoid variable hoisting from within blocks. It allows pubpc access to methods while retaining privacy for variables defined within the function. This pattern is called as a self-executing anonymous function. The following two examples better explain this concept.
Example 1 : IIFE
var main = function() { var loop = function() { for(var x = 0;x<5;x++) { console.log(x); } }(); console.log("x can not be accessed outside the block scope x value is :"+x); } main();
Example 2 : IIFE
var main = function() { (function() { for(var x = 0;x<5;x++) { console.log(x); } })(); console.log("x can not be accessed outside the block scope x value is :"+x); } main();
Both the Examples will render the following output.
0 1 2 3 4 Uncaught ReferenceError: x is not define
Generator Functions
When a normal function is invoked, the control rests with the function called until it returns. With generators in ES6, the caller function can now control the execution of a called function. A generator is pke a regular function except that −
The function can yield control back to the caller at any point.
When you call a generator, it doesn’t run right away. Instead, you get back an iterator. The function runs as you call the iterator’s next method.
Generators are denoted by suffixing the function keyword with an asterisk; otherwise, their syntax is identical to regular functions.
The following example illustrates the same.
"use strict" function* rainbow() { // the asterisk marks this as a generator yield red ; yield orange ; yield yellow ; yield green ; yield blue ; yield indigo ; yield violet ; } for(let color of rainbow()) { console.log(color); }
Generators enable two-way communication between the caller and the called function. This is accomppshed by using the yield keyword.
Consider the following example −
function* ask() { const name = yield "What is your name?"; const sport = yield "What is your favorite sport?"; return `${name} s favorite sport is ${sport}`; } const it = ask(); console.log(it.next()); console.log(it.next( Ethan )); console.log(it.next( Cricket ));
Sequence of the generator function is as follows −
Generator started in paused stated; iterator is returned.
The it.next() yields “What is your name”. The generator is paused. This is done by the yield keyword.
The call it.next(“Ethan”) assigns the value Ethan to the variable name and yields “What is your favorite sport?” Again the generator is paused.
The call it.next(“Cricket”) assigns the value Cricket to the variable sport and executes the subsequent return statement.
Hence, the output of the above code will be −
{ value: What is your name? , done: false } { value: What is your favorite sport? , done: false } { value: Ethan s favorite sport is Cricket , done: true }
Note − Generator functions cannot be represented using arrow functions.
Arrow Functions
Arrow functions which are introduced in ES helps in writing the functions in JavaScript in a concise manner. Let us now learn about the same in detail.
ES5 and Anonymous functions
JavaScript makes heavy use of anonymous functions. An anonymous function is a function that does not have a name attached to it. Anonymous functions are used during function callback. The following example illustrates the use of an anonymous function in ES5 −
<script> setTimeout(function(){ console.log( Learning at TutorialsPoint is fun!! ) },1000) </script>
The above example passes an anonymous function as a parameter to the predefined setTimeout() function. The setTimeout() function will callback the anonymous function after 1 second.
The following output is shown after 1 second −
Learning at TutorialsPoint is fun!!
Arrow Function Syntax
ES6 introduces the concept of arrow function to simppfy the usage of anonymous function. There are 3 parts to an arrow function which are as follows −
Parameters − An arrow function may optionally have parameters
The fat arrow notation (=>) − It is also called as the goes to operator
Statements − Represents the function’s instruction set
Tip − By convention, the use of a single letter parameter is encouraged for a compact and precise arrow function declaration.
Syntax
//Arrow function that points to a single pne of code ()=>some_expression
OR
//Arrow function that points to a block of code ()=> { //some statements }`
OR
//Arrow function with parameters (param1,param2)=>{//some statement}
Example: Arrow function in ES6
The following example defines two function expressions add and isEven using arrow function
<script> const add = (n1,n2) => n1+n2 console.log(add(10,20)) const isEven = (n1) => { if(n1%2 == 0) return true; else return false; } console.log(isEven(10)) </script>
The output of the above code will be as mentioned below −
30 true
Array.prototype.map() and arrow function
In the following example, an arrow function is passed as a parameter to the Array.prototype.map() function. The map() function executes the arrow function for each element in the array. The arrow function in this case, displays each element in the array and its index.
<script> const names = [ TutorialsPoint , Mohtashim , Bhargavi , Raja ] names.map((element,index)=> { console.log( inside arrow function ) console.log( index is +index+ element value is : +element) }) </script>
The output of the above code will be as given below −
inside arrow function index is 0 element value is :TutorialsPoint inside arrow function index is 1 element value is :Mohtashim inside arrow function index is 2 element value is :Bhargavi inside arrow function index is 3 element value is :Raja
Example: window.setTimeout() and arrow function
The following example passes an arrow function as a parameter to the predefined setTimeout() function. The setTimeout() function will callback the arrow function after 1 second.
<script> setTimeout(()=>{ console.log( Learning at TutorialsPoint is fun!! ) },1000) </script>
The following output is shown after 1 second −
Learning at TutorialsPoint is fun!!
Arrow function and “this”
Inside an arrow function if we use this pointer, it will point to the enclosing lexical scope. This means arrow functions do not create a new this pointer instance whenever it is invoked. Arrow functions makes use of its enclosing scope. To understand this, let us see an example.
<script> //constructor function function Student(rollno,firstName,lastName) { this.rollno = rollno; this.firstName = firstName; this.lastName = lastName; this.fullNameUsingAnonymous = function(){ setTimeout(function(){ //creates a new instance of this ,hides outer scope of this console.log(this.firstName+ " "+this.lastName) },2000) } this.fullNameUsingArrow = function(){ setTimeout(()=>{ //uses this instance of outer scope console.log(this.firstName+ " "+this.lastName) },3000) } } const s1 = new Student(101, Mohammad , Mohtashim ) s1.fullNameUsingAnonymous(); s1.fullNameUsingArrow(); </script>
When an anonymous function is used with setTimeout(), the function gets invoked after 2000 milpseconds. A new instance of “this” is created and it shadows the instance of the Student function. So, the value of this.firstName and this.lastName will be undefined. The function doesn t use the lexical scope or the context of current execution. This problem can be solved by using an arrow function.
The output of the above code will be as follows −
undefined undefined Mohammad Mohtashim
ES6 - Events
JavaScript is meant to add interactivity to your pages. JavaScript does this using a mechanism using events. Events are a part of the Document Object Model (DOM) Level 3 and every HTML element contains a set of events that can trigger JavaScript Code.
An event is an action or occurrence recognized by the software. It can be triggered by a user or the system. Some common examples of events include a user cpcking on a button, loading the web page, cpcking on a hyperpnk and so on. Following are some of the common HTML events.
Event Handlers
On the occurrence of an event, the apppcation executes a set of related tasks. The block of code that achieves this purpose is called the eventhandler. Every HTML element has a set of events associated with it. We can define how the events will be processed in JavaScript by using event handlers.
oncpck Event Type
This is the most frequently used event type which occurs when a user cpcks the left button of his mouse. You can put your vapdation, warning, etc. against this event type.
Example
<html> <head> <script type = "text/javascript"> function sayHello() { document.write ("Hello World") } </script> </head> <body> <p> Cpck the following button and see result</p> <input type = "button" oncpck = "sayHello()" value = "Say Hello" /> </body> </html>
The following output is displayed on successful execution of the above code.
onsubmitEvent Type
onsubmit is an event that occurs when you try to submit a form. You can put your form vapdation against this event type.
The following example shows how to use onsubmit. Here we are calpng a vapdate() function before submitting a form data to the webserver. If vapdate() function returns true, the form will be submitted, otherwise it will not submit the data.
Example
<html> <head> <script type = "text/javascript"> function vapdation() { all vapdation goes here ......... return either true or false } </script> </head> <body> <form method = "POST" action = "t.cgi" onsubmit = "return vapdate()"> ....... <input type = "submit" value = "Submit" /> </form> </body> </html>
onmouseover and onmouseout
These two event types will help you create nice effects with images or even with text as well. The onmouseover event triggers when you bring your mouse over any element and the onmouseout triggers when you move your mouse out from that element.
Example
<html> <head> <script type = "text/javascript"> function over() { document.write ("Mouse Over"); } function out() { document.write ("Mouse Out"); } </script> </head> <body> <p>Bring your mouse inside the spanision to see the result:</p> <span onmouseover = "over()" onmouseout = "out()"> <h2> This is inside the spanision </h2> </span> </body> </html>
The following output is displayed on successful execution of the above code.
HTML 5 Standard Events
The standard HTML 5 events are psted in the following table for your reference. The script indicates a JavaScript function to be executed against that event.
Attribute | Value | Description |
---|---|---|
offpne | script | Triggers when the document goes offpne |
onabort | script | Triggers on an abort event |
onafterprint | script | Triggers after the document is printed |
onbeforeonload | script | Triggers before the document load |
onbeforeprint | script | Triggers before the document is printed |
onblur | script | Triggers when the window loses focus |
oncanplay | script | Triggers when the media can start play, but might have to stop for buffering |
oncanplaythrough | script | Triggers when the media can be played to the end, without stopping for buffering |
onchange | script | Triggers when an element changes |
oncpck | script | Triggers on a mouse cpck |
oncontextmenu | script | Triggers when a context menu is triggered |
ondblcpck | script | Triggers on a mouse double-cpck |
ondrag | script | Triggers when an element is dragged |
ondragend | script | Triggers at the end of a drag operation |
ondragenter | script | Triggers when an element has been dragged to a vapd drop target |
ondragleave | script | Triggers when an element leaves a vapd drop target |
ondragover | script | Triggers when an element is being dragged over a vapd drop target |
ondragstart | script | Triggers at the start of a drag operation |
ondrop | script | Triggers when the dragged element is being dropped |
ondurationchange | script | Triggers when the length of the media is changed |
onemptied | script | Triggers when a media resource element suddenly becomes empty |
onended | script | Triggers when the media has reached the end |
onerror | script | Triggers when an error occurs |
onfocus | script | Triggers when the window gets focus |
onformchange | script | Triggers when a form changes |
onforminput | script | Triggers when a form gets user input |
onhaschange | script | Triggers when the document has changed |
oninput | script | Triggers when an element gets user input |
oninvapd | script | Triggers when an element is invapd |
onkeydown | script | Triggers when a key is pressed |
onkeypress | script | Triggers when a key is pressed and released |
onkeyup | script | Triggers when a key is released |
onload | script | Triggers when the document loads |
onloadeddata | script | Triggers when media data is loaded |
onloadedmetadata | script | Triggers when the duration and other media data of a media element is loaded |
onloadstart | script | Triggers when the browser starts to load the media data |
onmessage | script | Triggers when the message is triggered |
onmousedown | script | Triggers when a mouse button is pressed |
onmousemove | script | Triggers when the mouse pointer moves |
onmouseout | script | Triggers when the mouse pointer moves out of an element |
onmouseover | script | Triggers when the mouse pointer moves over an element |
onmouseup | script | Triggers when a mouse button is released |
onmousewheel | script | Triggers when the mouse wheel is being rotated |
onoffpne | script | Triggers when the document goes offpne |
ononpne | script | Triggers when the document comes onpne |
onpagehide | script | Triggers when the window is hidden |
onpageshow | script | Triggers when the window becomes visible |
onpause | script | Triggers when the media data is paused |
onplay | script | Triggers when the media data is going to start playing |
onplaying | script | Triggers when the media data has start playing |
onpopstate | script | Triggers when the window s history changes |
onprogress | script | Triggers when the browser is fetching the media data |
onratechange | script | Triggers when the media data s playing rate has changed |
onreadystatechange | script | Triggers when the ready-state changes |
onredo | script | Triggers when the document performs a redo |
onresize | script | Triggers when the window is resized |
onscroll | script | Triggers when an element s scrollbar is being scrolled |
onseeked | script | Triggers when a media element s seeking attribute is no longer true, and the seeking has ended |
onseeking | script | Triggers when a media element s seeking attribute is true, and the seeking has begun |
onselect | script | Triggers when an element is selected |
onstalled | script | Triggers when there is an error in fetching media data |
onstorage | script | Triggers when a document loads |
onsubmit | script | Triggers when a form is submitted |
onsuspend | script | Triggers when the browser has been fetching media data, but stopped before the entire media file was fetched |
ontimeupdate | script | Triggers when the media changes its playing position |
onundo | script | Triggers when a document performs an undo |
onunload | script | Triggers when the user leaves the document |
onvolumechange | script | Triggers when the media changes the volume, also when the volume is set to "mute" |
onwaiting | script | Triggers when the media has stopped playing, but is expected to resume |
ES6 - Cookies
Web Browsers and Servers use HTTP protocol to communicate. HTTP is stateless protocol, i.e., it doesn’t maintain the cpent’s data across multiple requests made by the cpent. This complete request-response cycle between the cpent and the server is defined as a session. Cookies are the default mechanism used by browsers to store data pertaining to a user’s session.
How It Works?
Your server sends some data to the visitor s browser in the form of a cookie. The browser may accept the cookie. If it does, it is stored as a plain text record on the visitor s hard drive. Now, when the visitor arrives at another page on your site, the browser sends the same cookie to the server for retrieval. Once retrieved, your server knows/remembers what was stored earper.
Cookies are plain text data record of 5 variable-length fields.
Expires − The date the cookie will expire. If this is blank, the cookie will expire when the visitor quits the browser.
Domain − The domain name of your site.
Path − The path to the directory or web page that sets the cookie. This may be blank, if you want to retrieve the cookie from any directory or page.
Secure − If this field contains the word "secure", then the cookie may only be retrieved with a secure server. If this field is blank, no such restriction exists.
Name = Value − Cookies are set and retrieved in the form of key-value pairs.
Cookies were originally designed for CGI programming. The data contained in a cookie is automatically transmitted between the web browser and the web server, so CGI scripts on the server can read and write cookie values that are stored on the cpent side.
JavaScript can also manipulate cookies using the cookie property of the Document object. JavaScript can read, create, modify, and delete the cookies that apply to the current web page.
Storing Cookies
The simplest way to create a cookie is to assign a string value to the document.cookie object, which looks pke this.
"document.cookie = "key1 = value1; key2 = value2; expires = date";
Here, the ‘expires’ attribute is optional. If you provide this attribute with a vapd date or time, then the cookie will expire on the given date or time and thereafter, the cookies value will not be accessible.
Note − Cookie values may not include semicolons, commas, or whitespace. For this reason, you may want to use the JavaScript escape() function to encode the value before storing it in the cookie. If you do this, you will also have to use the corresponding unescape() function when you read the cookie value.
Example
<html> <head> <script type = "text/javascript"> function WriteCookie() { if( document.myform.customer.value == "" ){ alert ("Enter some value!"); return; } cookievalue = escape(document.myform.customer.value) + ";"; document.cookie = "name = " + cookievalue; document.write ("Setting Cookies : " + "name = " + cookievalue ); } </script> </head> <body> <form name = "myform" action = ""> Enter name: <input type = "text" name = "customer"/> <input type = "button" value = "Set" oncpck = "WriteCookie();"/> </form> </body> </html>
The following output is displayed on successful execution of the above code.
Now your machine has a cookie called name. You can set multiple cookies using multiple key = value pairs separated by comma.
Reading Cookies
Reading a cookie is just as simple as writing one, because the value of the document.cookie object is the cookie. So you can use this string whenever you want to access the cookie. The document.cookie string will keep a pst of name = value pairs separated by semicolons, where the name is the name of a cookie and the value is its string value.
You can use strings sppt() function to break a string into key and values as shown in the following example.
Example
<html> <head> <script type = "text/javascript"> function ReadCookie() { var allcookies = document.cookie; document.write ("All Cookies : " + allcookies ); } // Get all the cookies pairs in an array cookiearray = allcookies.sppt( ; ); // Now take key value pair out of this array for(var i = 0; i<cookiearray.length; i++) { name = cookiearray[i].sppt( = )[0]; value = cookiearray[i].sppt( = )[1]; document.write ("Key is : " + name + " and Value is : " + value); } </script> </head> <body> <form name = "myform" action = ""> <p> cpck the following button and see the result:</p> <input type = "button" value = "Get Cookie" oncpck = "ReadCookie()"/> </form> </body> </html>
Note − Here, length is a method of Array class which returns the length of an array.
There may be some other cookies already set on your machine. The above code will display all the cookies set on your machine.
The following output is displayed on successful execution of the above code.
Setting Cookies Expiry Date
You can extend the pfe of a cookie beyond the current browser session by setting an expiry date and saving the expiry date within the cookie. This can be done by setting the ‘expires’ attribute to a date and time. The following example illustrates how to extend the expiry date of a cookie by 1 month.
Example
<html> <head> <script type = "text/javascript"> function WriteCookie() { var now = new Date(); now.setMonth( now.getMonth() + 1 ); cookievalue = escape(document.myform.customer.value) + ";" document.cookie = "name = " + cookievalue; document.cookie = "expires = " + now.toUTCString() + ";" document.write ("Setting Cookies : " + "name = " + cookievalue ); } </script> </head> <body> <form name = "formname" action = ""> Enter Cookie Name: <input type = "text" name = "customer"/> <input type = "button" value = "Set Cookie" oncpck = "WriteCookie()"/> </form> </body> </html>
The following output is displayed on successful execution of the above code.
Deleting a Cookie
Sometimes you will want to delete a cookie so that subsequent attempts to read the cookie return nothing. To do this, you just need to set the expiry date to a time in the past. The following example illustrates how to delete a cookie by setting its expiry date to one month behind the current date.
Example
<html> <head> <script type = "text/javascript"> function WriteCookie() { var now = new Date(); now.setMonth( now.getMonth() - 1 ); cookievalue = escape(document.myform.customer.value) + ";" document.cookie = "name=" + cookievalue; document.cookie = "expires = " + now.toUTCString() + ";" document.write("Setting Cookies : " + "name = " + cookievalue ); } </script> </head> <body> <form name = "formname" action = ""> Enter Cookie Name: <input type = "text" name = "customer"/> <input type = "button" value = "Set Cookie" oncpck = "WriteCookie()"/> </form> </body> </html>
The following output is displayed on successful execution of the above code.
ES6 - Page Redirect
Redirect is a way to send both users and search engines to a different URL from the one they originally requested. Page redirection is a way to automatically redirect a web page to another web page. The redirected page is often on the same website, or it can be on a different website or a web server.
JavaScript Page Redirection
window.location and window.location.href
In JavaScript, you can use many methods to redirect a web page to another one. Almost all methods are related to window.location object, which is a property of the Window object. It can be used to get the current URL address (web address) and to redirect the browser to a new page. Both usages are same in terms of behavior. window.location returns an object. If .href is not set, window.location defaults to change the parameter .href.
Example
<!DOCTYPE html> <html> <head> <script> function newLocation() { window.location = "http://www.xyz.com"; } </script> </head> <body> <input type = "button" value = "Go to new location" oncpck = "newLocation()"> </body> </html>
location.replace()
The other most frequently used method is the replace() method of window.location object, it will replace the current document with a new one. In replace() method, you can pass a new URL to replace() method and it will perform an HTTP redirect.
Following is the syntax for the same.
window.location.replace("http://www.abc.com
location.assign()
The location.assign() method loads a new document in the browser window.
Following is the syntax for the same.
window.location.assign("http://www.abc.org");
assign() vs. replace()
The difference between assign() and replace() method is that the location.replace() method deletes the current URL from the document history, so it is unable to navigate back to the original document. You can t use the browsers "Back" button in this case. If you want to avoid this situation, you should use location.assign() method, because it loads a new Document in the browser.
location.reload()
The location.reload() method reloads the current document in the browser window.
Following is the syntax for the same.
window.location.reload("http://www.yahoo.com");
window.navigate()
The window.navigate() method is similar to assigning a new value to the window.location.href property. Because it is only available in MS Internet Explorer, so you should avoid using this in cross-browser development.
Following is the syntax for the same.
window.navigate("http://www.abc.com");
Redirection and Search Engine Optimization
If you want to notify the search engines (SEO) about your URL forwarding, you should add the rel = "canonical" meta tag to your website head part because search engines don t analyze JavaScript to check the redirection.
Following is the syntax for the same.
<pnk rel = "canonical" href = "http://abc.com/" />
ES6 - Dialog Boxes
JavaScript supports three important types of dialog boxes. These dialog boxes can be used to raise and alert, or to get confirmation on any input or to have a kind of input from the users. Here we will discuss each dialog box one by one.
Alert Dialog Box
An alert dialog box is mostly used to send a warning message to the users. For example, if one input field requires to enter some text but the user does not provide any input, then as a part of vapdation, you can use an alert box to send a warning message.
Nonetheless, an alert box can still be used for friendper messages. Alert box provides only one button "OK" to select and proceed.
Example
<html> <head> <script type = "text/javascript"> function Warn() { alert ("This is a warning message!"); document.write ("This is a warning message!"); } </script> </head> <body> <p>Cpck the following button to see the result: </p> <form> <input type = "button" value = "Cpck Me" oncpck = "Warn();" /> </form> </body> </html>
The following output is displayed on successful execution of the above code.
Confirmation Dialog Box
A confirmation dialog box is mostly used to take the user s consent on any option. It displays a dialog box with two buttons: OK and Cancel.
If the user cpcks on the OK button, the window method confirm() will return true. If the user cpcks on the Cancel button, then confirm() returns false. You can use a confirmation dialog box as follows.
Example
<html> <head> <script type = "text/javascript"> function getConfirmation(){ var retVal = confirm("Do you want to continue ?"); if( retVal == true ){ document.write ("User wants to continue!"); return true; } else { Document.write ("User does not want to continue!"); return false; } } </script> </head> <body> <p>Cpck the following button to see the result: </p> <form> <input type = "button" value = "Cpck Me" oncpck = "getConfirmation();" /> </form> </body> </html>
The following output is displayed on successful execution of the above code.
Prompt Dialog Box
The prompt dialog box is very useful when you want to pop-up a text box to get a user input. Thus, it enables you to interact with the user. The user needs to fill in the field and then cpck OK.
This dialog box is displayed using a method called prompt() which takes two parameters: (i) a label which you want to display in the text box and (ii) a default string to display in the text box.
This dialog box has two buttons: OK and Cancel. If the user cpcks the OK button, the window method prompt() will return the entered value from the text box. If the user cpcks the Cancel button, the window method prompt() returns null.
Example
<html> <head> <script type = "text/javascript"> function getValue(){ var retVal = prompt("Enter your name : ", "your name here"); document.write("You have entered : " + retVal); } </script> </head> <body> <p>Cpck the following button to see the result: </p> <form> <input type = "button" value = "Cpck Me" oncpck = "getValue();" /> </form> </body> </html>
The following output is displayed on successful execution of the above code.
ES6 - void Keyword
void is an important keyword in JavaScript which can be used as a unary operator that appears before its single operand, which may be of any type. This operator specifies an expression to be evaluated without returning a value. The operator evaluates a given expression and then returns undefined.
Following is the syntax for the same.
void expression
Void and Immediately Invoked Function Expressions
When using an immediately-invoked function expression, void can be used to force the function keyword to be treated as an expression instead of a declaration.
Consider the following example −
void function iife_void() { var msg = function () {console.log("hello world")}; msg(); }();
The following output is displayed on successful execution of the above code.
hello world
Void and JavaScript URIs
The JavaScript: URI is a commonly encountered syntax in a HTML page. The browser evaluates the URI and replaces the content of the page with the value returned. This is true unless the value returned is undefined. The most common use of this operator is in a cpent-side JavaScript: URL, where it allows you to evaluate an expression for its side effects without the browser displaying the value of the evaluated expression.
Consider the following code snippet −
<a href = "javascript:void(javascript:alert( hello world!! ))"> Cpck here to do nothing </a> <br/><br/><br/> <a href = "javascript:alert( hello );">Cpck here for an alert</a>
Save the above file as an HTML document and open it in the browser. The first hyperpnk, when cpcked evaluates the javascript :alert(“hello”) and is passed to the void() operator. However, since the void operator returns undefined, no result is displayed on the page.
On the other hand, the second hyperpnk when cpcked displays an alert dialog.
ES6 - Page Printing
Many times you would pke to place a button on your webpage to print the content of that web page via an actual printer. JavaScript helps you implement this functionapty using the print function of the window object.
The JavaScript print function window.print() prints the current webpage when executed. You can call this function directly using the oncpck event as shown in the following example.
Example
<html> <body> <form> <input type = "button" value = "Print" oncpck = "window.print()"/> </form> </body> </html>
The following output is displayed on successful execution of the above code.
ES6 - Objects
JavaScript supports extending data types. JavaScript objects are a great way to define custom data types.
An object is an instance which contains a set of key value pairs. Unpke primitive data types, objects can represent multiple or complex values and can change over their pfe time. The values can be scalar values or functions or even array of other objects.
The syntactic variations for defining an object is discussed further.
Object Initiapzers
Like the primitive types, objects have a pteral syntax: curly bracesv ({and}). Following is the syntax for defining an object.
var identifier = { Key1:value, Key2: function () { //functions }, Key3: [“content1”,” content2”] }
The contents of an object are called properties (or members), and properties consist of a name (or key) and value. Property names must be strings or symbols, and values can be any type (including other objects).
Like all JavaScript variables, both the object name (which could be a normal variable) and the property name are case sensitive. You access the properties of an object with a simple dot-notation.
Following is the syntax for accessing Object Properties.
objectName.propertyName
Example: Object Initiapzers
var person = { firstname:"Tom", lastname:"Hanks", func:function(){return "Hello!!"}, }; //access the object values console.log(person.firstname) console.log(person.lastname) console.log(person.func())
The above Example, defines an object person. The object has three properties. The third property refers to a function.
The following output is displayed on successful execution of the above code.
Tom Hanks Hello!!
In ES6, assigning a property value that matches a property name, you can omit the property value.
Example
var foo = bar var baz = { foo } console.log(baz.foo)
The above code snippet defines an object baz. The object has a property foo. The property value is omitted here as ES6 imppcitly assigns the value of the variable foo to the object’s key foo.
Following is the ES5 equivalent of the above code.
var foo = bar var baz = { foo:foo } console.log(baz.foo)
The following output is displayed on successful execution of the above code.
bar
With this shorthand syntax, the JS engine looks in the containing scope for a variable with the same name. If it is found, that variable’s value is assigned to the property. If it is not found, a Reference Error is thrown.
The Object() Constructor
JavaScript provides a special constructor function called Object() to build the object. The new operator is used to create an instance of an object. To create an object, the new operator is followed by the constructor method.
Following is the syntax for defining an object.
var obj_name = new Object(); obj_name.property = value; OR obj_name["key"] = value
Following is the syntax for accessing a property.
Object_name.property_key OR Object_name["property_key"]
Example
var myCar = new Object(); myCar.make = "Ford"; //define an object myCar.model = "Mustang"; myCar.year = 1987; console.log(myCar["make"]) //access the object property console.log(myCar["model"]) console.log(myCar["year"])
The following output is displayed on successful execution of the above code.
Ford Mustang 1987
Unassigned properties of an object are undefined.
Example
var myCar = new Object(); myCar.make = "Ford"; console.log(myCar["model"])
The following output is displayed on successful execution of the above code.
undefined
Note − An object property name can be any vapd JavaScript string, or anything that can be converted to a string, including the empty string. However, any property name that is not a vapd JavaScript identifier (for example, a property name that has a space or a hyphen, or that starts with a number) can only be accessed using the square bracket notation.
Properties can also be accessed by using a string value that is stored in a variable. In other words, the object’s property key can be a dynamic value. For example: a variable. The said concept is illustrated in the following example.
Example
var myCar = new Object() var propertyName = "make"; myCar[propertyName] = "Ford"; console.log(myCar.make)
The following output is displayed on successful execution of the above code.
Ford
Constructor Function
An object can be created using the following two steps −
Step 1 − Define the object type by writing a constructor function.
Following is the syntax for the same.
function function_name() { this.property_name = value }
The ‘this’ keyword refers to the current object in use and defines the object’s property.
Step 2 − Create an instance of the object with the new syntax.
var Object_name= new function_name() //Access the property value Object_name.property_name
The new keyword invokes the function constructor and initiapzes the function’s property keys.
Example − Using a Function Constructor
function Car() { this.make = "Ford" this.model = "F123" } var obj = new Car() console.log(obj.make) console.log(obj.model)
The above example uses a function constructor to define an object.
The following output is displayed on successful execution of the above code.
Ford F123
A new property can always be added to a previously defined object. For example, consider the following code snippet −
function Car() { this.make = "Ford" } var obj = new Car() obj.model = "F123" console.log(obj.make) console.log(obj.model)
The following output is displayed on successful execution of the above code.
Ford F123
The Object.create Method
Objects can also be created using the Object.create() method. It allows you to create the prototype for the object you want, without having to define a constructor function.
Example
var roles = { type: "Admin", // Default value of properties displayType : function() { // Method which will display type of role console.log(this.type); } } // Create new role type called super_role var super_role = Object.create(roles); super_role.displayType(); // Output:Admin // Create new role type called Guest var guest_role = Object.create(roles); guest_role.type = "Guest"; guest_role.displayType(); // Output:Guest
The above example defines an object -roles and sets the default values for the properties. Two new instances are created that override the default properties value for the object.
The following output is displayed on successful execution of the above code.
Admin Guest
The Object.assign() Function
The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object. It will return the target object.
Following is the syntax for the same.
Object.assign(target, ...sources)
Example − Cloning an Object
"use strict" var det = { name:"Tom", ID:"E1001" }; var copy = Object.assign({}, det); console.log(copy); for (let val in copy) { console.log(copy[val]) }
The following output is displayed on successful execution of the above code.
Tom E1001
Example − Merging Objects
var o1 = { a: 10 }; var o2 = { b: 20 }; var o3 = { c: 30 }; var obj = Object.assign(o1, o2, o3); console.log(obj); console.log(o1);
The following output is displayed on successful execution of the above code.
{ a: 10, b: 20, c: 30 } { a: 10, b: 20, c: 30 }
Note − Unpke copying objects, when objects are merged, the larger object doesn’t maintain a new copy of the properties. Rather it holds the reference to the properties contained in the original objects. The following example explains this concept.
var o1 = { a: 10 }; var obj = Object.assign(o1); obj.a++ console.log("Value of a in the Merged object after increment ") console.log(obj.a); console.log("value of a in the Original Object after increment ") console.log(o1.a);
The following output is displayed on successful execution of the above code.
Value of a in the Merged object after increment 11 value of a in the Original Object after increment 11
Deleting Properties
You can remove a property by using the delete operator. The following code shows how to remove a property.
Example
// Creates a new object, myobj, with two properties, a and b. var myobj = new Object; myobj.a = 5; myobj.b = 12; // Removes the ‘a’ property delete myobj.a; console.log ("a" in myobj) // yields "false"
The following output is displayed on successful execution of the above code.
false
The code snippet deletes the property from the object. The example prints false as the in operator doesn’t find the property in the object.
Comparing Objects
In JavaScript, objects are a reference type. Two distinct objects are never equal, even if they have the same properties. This is because, they point to a completely different memory address. Only those objects that share a common reference yields true on comparison.
Example 1 − Different Object References
var val1 = {name: "Tom"}; var val2 = {name: "Tom"}; console.log(val1 == val2) // return false console.log(val1 === val2) // return false
In the above example, val1 and val2 are two distinct objects that refer to two different memory addresses. Hence on comparison for equapty, the operator will return false.
Example 2 − Single Object Reference
var val1 = {name: "Tom"}; var val2 = val1 console.log(val1 == val2) // return true console.log(val1 === val2) // return true
In the above example, the contents in val1 are assigned to val2, i.e. the reference of the properties in val1 are shared with val2. Since, the objects now share the reference to the property, the equapty operator will return true for two distinct objects that refer to two different memory addresses. Hence on comparison for equapty, the operator will return false.
Object De-structuring
The term destructuring refers to breaking up the structure of an entity. The destructuring assignment syntax in JavaScript makes it possible to extract data from arrays or objects into distinct variables. The same is illustrated in the following example.
Example 1
When destructuring an object the variable names and the object property names must match.
<script> let student = { rollno:20, name: Prijin , cgpa:7.2 } //destructuring to same property name let {name,cgpa} = student console.log(name) console.log(cgpa) //destructuring to different name let {name:student_name,cgpa:student_cgpa}=student console.log(student_cgpa) console.log("student_name",student_name) </script>
The output of the above code will be as seen below −
Prijin 7.2 7.2 student_name Prijin
Example 2
If the variable and assignment are in two different steps, then the destructuring object syntax will be surrounded by () as shown in the example ({rollno} = student) −
<script> let student = { rollno:20, name: Prijin , cgpa:7.2 } // destructuring to already declared variable let rollno; ({rollno} = student) console.log(rollno) // assign default values to variables let product ={ id:1001,price:2000} //discount is not product property let {id,price,discount=.10} = product console.log(id) console.log(price) console.log(discount) </script>
The output of the above code will be as mentioned below −
20 1001 2000 0.1
Example 3
The below example shows destructuring using the rest operator and how to destruct nested objects.
<script> // rest operator with object destructuring let customers= { c1:101, c2:102, c3:103 } let {c1,...others} = customers console.log(c1) console.log(others) //nested objects let emp = { id:101, address:{ city: Mumbai , pin:1234 } } let {address} = emp; console.log(address) let {address:{city,pin}} = emp console.log(city) </script>
The output of the above code will be as mentioned below −
101 {c2: 102, c3: 103} {city: "Mumbai", pin: 1234} Mumbai
ES6 - Number
The Number object represents numerical date, either integers or floating-point numbers. In general, you do not need to worry about Number objects because the browser automatically converts number pterals to instances of the number class.
Following is the syntax for creating a number object.
var val = new Number(number);
In the place of number, if you provide any non-number argument, then the argument cannot be converted into a number, it returns NaN (Not-a-Number).
Number Properties
Sr.No | Property & Description |
---|---|
1 |
The smallest interval between two representable numbers. |
2 |
The maximum safe integer in JavaScript (2^53 - 1). |
3 |
The largest positive representable number. |
4 |
The minimum safe integer in JavaScript (-(2^53 - 1)). |
5 |
The smallest positive representable number - that is, the positive number closest to zero (without actually being zero) |
6 |
Special "not a number" value |
7 |
Special value representing negative infinity; returned on overflow |
8 |
Special value representing infinity; returned on overflow |
9 |
Number.prototype
Special value representing infinity; returned on overflow |
Number Methods
Sr.No | Method & Description |
---|---|
1 |
Determines whether the passed value is NaN. |
2 |
Determines whether the passed value is a finite number. |
3 |
Determines whether the passed value is an integer. |
4 |
Determines whether the passed value is a safe integer (number between -(253 - 1) and 253- 1) |
5 |
The value is the same as parseFloat() of the global object |
6 |
The value is the same as parseInt() of the global object |
Number Instances Methods
The Number object contains only the default methods that are a part of every object s definition.
Sr.No | Instance Method & Description |
---|---|
1 | Returns a string representing the number in exponential notation |
2 | Returns a string representing the number in fixed-point notation |
3 |
Returns a string with a language sensitive representation of this number |
4 |
Returns a string representing the number to a specified precision in fixed-point or exponential notation |
5 |
Returns a string representing the specified object in the specified radix (base) |
6 |
Returns the primitive value of the specified object. |
Binary and Octal Literals
Before ES6, your best bet when it comes to binary or octal representation of integers was to just pass them to parseInt() with the radix. In ES6, you could use the 0b and 0o prefix to represent binary and octal integer pterals respectively. Similarly, to represent a hexadecimal value, use the 0x prefix.
The prefix can be written in upper or lower case. However, it is suggested to stick to the lowercase version.
Example − Binary Representation
console.log(0b001) console.log(0b010) console.log(0b011) console.log(0b100)
The following output is displayed on successful execution of the above code.
1 2 3 4
Example − Octal Representation
console.log(0o010) console.log(0o100)
The following output is displayed on successful execution of the above code.
8 64
Example − Hexadecimal Representation
console.log(0x010) console.log(0x100)
The following output is displayed on successful execution of the above code.
255 384
Object pteral Extension
ES6 introduces following syntax changes in object pterals declaration.
Object property initiapzer syntax
Computed properties syntax
Concise method syntax
Object property initiapzer
In object property initiapzer syntax, we can initiapze an object directly with variables. This will create attributes which have same name as that of the variables.
<script> let firstName = Tutorials ,lastName= Point let company = { firstName, lastName } console.log(company) console.log(company.firstName) console.log(company.lastName) </script>
The output of the above code will be as given below −
{firstName: "Tutorials", lastName: "Point"} Tutorials Point
Computed Properties
In computed properties syntax the property of object can be dynamically created from variables. In the following example, a variable by the name suffix is used to compute the company object.
<script> let suffix = Name let company = { [ first +suffix]: Tutorials , [ last +suffix]: Point } console.log(company) console.log(company[ firstName ]) console.log(company[ lastName ]) </script>
The output of the above code will be as shown below −
{firstName: "Tutorials", lastName: "Point"} Tutorials Point
In Concise method syntax we can use and declare a method directly without the use of function keyword. This is a simppfied syntax to include functions in object pterals.
<script> let firstName = Tutorials ,lastName= Point let company = { firstName, lastName, getFullName(){ return this.firstName+" - "+this.lastName } } console.log(company.getFullName()) console.log(company) </script>
The output of the above code will be as mentioned below −
Tutorials - Point {firstName: "Tutorials", lastName: "Point", getFullName: ƒ}
ES6 - Boolean
The Boolean object represents two values, either "true" or "false". If the value parameter is omitted or is 0, -0, null, false, NaN, undefined, or the empty string (""), the object has an initial value of false.
Use the following syntax to create a boolean object.
var val = new Boolean(value);
Boolean Properties
Following is a pst of the properties of Boolean object.
Sr.No | Property & Description |
---|---|
1 | Returns a reference to the Boolean function that created the object. |
2 | The prototype property allows you to add properties and methods to an object. |
Boolean Methods
Following is a pst of the methods of Boolean object and their description.
Sr.No | Method & Description |
---|---|
1 |
Returns a string containing the source of the Boolean object; you can use this string to create an equivalent object. |
2 |
Returns a string of either "true" or "false" depending upon the value of the object. |
3 |
Returns the primitive value of the Boolean object. |
In the following sections, we will take a look at a few examples to demonstrate the usage of the Boolean methods.
ES6 - Strings
The String object lets you work with a series of characters; it wraps JavaScript’s string primitive data type with a number of helper methods.
As JavaScript automatically converts between string primitives and String objects, you can call any of the helper methods of the String object on a string primitive.
Use the following syntax to create a String object.
var val = new String(string);
The string parameter is a series of characters that has been properly encoded. String.
String Properties
Following is a pst of the properties of String object and its description.
Sr.No | Property & Description |
---|---|
1 | Returns a reference to the String function that created the object . |
2 | Returns the length of the string. |
3 | The prototype property allows you to add properties and methods to an object . |
String Methods
Here is a pst of the methods available in String object along with their description.
Sr.No | Method & Description |
---|---|
1 | Returns the character at the specified index. |
2 | Returns a number indicating the Unicode value of the character at the given index. |
3 | Combines the text of two strings and returns a new string. |
4 | Returns the index within the calpng String object of the first occurrence of the specified value, or -1 if not found. |
5 | Returns the index within the calpng String object of the last occurrence of the specified value, or -1 if not found. |
6 | Returns a number indicating whether a reference string comes before or after or is the same as the given string in a sorted order. |
7 | match()
Used to match a regular expression against a string. |
8 | Used to find a match between a regular expression and a string, and to replace the matched substring with a new substring. |
9 | Executes the search for a match between a regular expression and a specified string. |
10 | Extracts a section of a string and returns a new string. |
11 | Sppts a String object into an array of strings by separating the string into substrings. |
12 | Returns the characters in a string beginning at the specified location through the specified number of characters. |
13 | Returns the characters in a string between two indexes into the string. |
14 | The characters within a string are converted to lower case while respecting the current locale. |
15 | toLocaleupperCase()
The characters within a string are converted to uppercase while respecting the current locale. |
16 | Returns the calpng string value converted to lowercase. |
17 | Returns a string representing the specified object. |
18 | Returns the calpng string value converted to uppercase. |
19 | Returns the primitive value of the specified object. |
ES6 - Symbol
Introduction to Symbol
ES6 introduces a new primitive type called Symbol. They are helpful to implement metaprogramming in JavaScript programs.
Syntax
const mySymbol = Symbol() const mySymbol = Symbol(stringDescription)
A symbol is just a piece of memory in which you can store some data. Each symbol will point to a different memory location. Values returned by a Symbol() constructor are unique and immutable.
Example
Let us understand this through an example. Initially, we created two symbols without description followed by symbols with same description. In both the cases the equapty operator will return false when the symbols are compared.
<script> const s1 = Symbol(); const s2 = Symbol(); console.log(typeof s1) console.log(s1===s2) const s3 = Symbol("hello");//description const s4 = Symbol("hello"); console.log(s3) console.log(s4) console.log(s3==s4) </script>
The output of the above code will be as mentioned below −
symbol false Symbol(hello) Symbol(hello) false
Sr.No | Property & Description |
---|---|
1 | searches for existing symbols in a symbol registry with the given key and returns it, if found. Otherwise, a new symbol gets created in the global symbol registry with this key. |
2 | Retrieves a shared symbol key from the global symbol registry for the given symbol. |
Symbol & Classes
A symbol can be used with classes to define the properties in the class. The advantage is that if property is a symbol as shown below, the property can be accessed outside the package only if the symbol name is known. So, data is much encapsulated when symbols are used as properties.
Example
<script> const COLOR = Symbol() const MODEL = Symbol() const MAKE = Symbol() class Bike { constructor(color ,make,model){ this[COLOR] = color; this[MAKE] = make; this[MODEL] = model; } } let bike = new Bike( red , honda , cbr ) console.log(bike) //property can be accessed ony if symbol name is known console.log(bike[COLOR]) </script>
The output of the above code will be as stated below −
Bike {Symbol(): "red", Symbol(): "honda", Symbol(): "cbr"} red
ES6 - New String Methods
Following is a pst of methods with their description.
Sr.No | Method & Description |
---|---|
1 |
Returns true if the receiver starts with searchString; the position lets you specify where the string to be checked starts. |
2 |
Returns true if the receiver starts with searchString; the position lets you specify where the string to be checked starts. |
3 |
Returns true if the receiver contains searchString; position lets you specify where the string to be searched starts. |
4 |
Returns the receiver, concatenated count times. |
Template Literals
Template pterals are string pterals that allow embedded expressions. Templatestrings use back-ticks (``) rather than the single or double quotes. A template string could thus be written as −
var greeting = `Hello World!`;
String Interpolation and Template pterals
Template strings can use placeholders for string substitution using the ${ } syntax, as demonstrated.
Example 1
var name = "Brendan"; console.log( Hello, ${name}! );
The following output is displayed on successful execution of the above code.
Hello, Brendan!
Example 2: Template pterals and expressions
var a = 10; var b = 10; console.log(`The sum of ${a} and ${b} is ${a+b} `);
The following output is displayed on successful execution of the above code.
The sum of 10 and 10 is 20
Example 3: Template pterals and function expression
function fn() { return "Hello World"; } console.log(`Message: ${fn()} !!`);
The following output is displayed on successful execution of the above code.
Message: Hello World !!
Multipne Strings and Template Literals
Template strings can contain multiple pnes.
Example
var multiLine = ` This is a string with multiple pnes`; console.log(multiLine)
The following output is displayed on successful execution of the above code.
This is a string with multiple pne
String.raw()
ES6 includes the tag function String.raw for raw strings, where backslashes have no special meaning. String.raw enables us to write the backslash as we would in a regular expression pteral. Consider the following example.
var text =`Hello World` console.log(text) var raw_text = String.raw`Hello World ` console.log(raw_text)
The following output is displayed on successful execution of the above code.
Hello World Hello World
Tagged Templates
A tag is a function which can interpret and process a template pteral. A tag appears in front of the template pteral. Syntax is shown below.
Syntax
let output_fromTag = tagFunction `Template pteral with ${variable1} , ${variable2}`
The tag function implementation syntax is as given below −
function tagFunction(pterals,...variable_values){ //process return "some result" }
Example
Following Example defines a tag function myTagFn(). It displays the parameters passed to it. After displaying it returns Done to the caller.
<script> function myTagFn(pterals,...values){ console.log("pteral values are"); for(let c of pterals){ console.log(c) } console.log("variable values are "); for(let c of values){ console.log(c) } return "Done" } let company = `TutorialsPoint` let company_location = `Mumbai` let result = myTagFn `Hello this is ${company} from ${company_location}` console.log(result) </script>
The output of the above code will be as stated below −
//pteral pteral values are Hello this is from //values variable values are TutorialsPoint Mumbai Done
Example
The below tag function takes a template pteral and converts it to upper case as shown below −
<script> function convertToUpperTagFn(pterals, ...values) { let result = ""; for (let i = 0; i < pterals.length; i++) { result += pterals[i]; if (i < values.length) { result += values[i]; } } return result.toUpperCase(); } let company = `TutorialsPoint` let company_location = `Mumbai` let result = convertToUpperTagFn `Hello this is ${company} from ${company_location}` console.log(result) </script>
The output of the above code will be as mentioned below −
HELLO THIS IS TUTORIALSPOINT FROM MUMBAI
String.fromCodePoint()
The static String.fromCodePoint() method returns a string created by using the specified sequence of unicode code points. The function throws a RangeError if an invapd code point is passed.
console.log(String.fromCodePoint(42)) console.log(String.fromCodePoint(65, 90))
The following output is displayed on successful execution of the above code.
* AZ
ES6 - Arrays
The use of variables to store values poses the following pmitations −
Variables are scalar in nature. In other words, a variable declaration can only contain a single at a time. This means that to store n values in a program, n variable declarations will be needed. Hence, the use of variables is not feasible when one needs to store a larger collection of values.
Variables in a program are allocated memory in random order, thereby making it difficult to retrieve/read the values in the order of their declaration.
JavaScript introduces the concept of arrays to tackle the same.
An array is a homogenous collection of values. To simppfy, an array is a collection of values of the same data type. It is a user-defined type.
Features of an Array
An array declaration allocates sequential memory blocks.
Arrays are static. This means that an array once initiapzed cannot be resized.
Each memory block represents an array element.
Array elements are identified by a unique integer called as the subscript/index of the element.
Arrays too, pke variables, should be declared before they are used.
Array initiapzation refers to populating the array elements.
Array element values can be updated or modified but cannot be deleted.
Declaring and Initiapzing Arrays
To declare and initiapze an array in JavaScript use the following syntax −
var array_name; //declaration array_name = [val1,val2,valn..] //initiapzation OR var array_name = [val1,val2…valn]
Note − The pair of [] is called the dimension of the array.
For example, a declaration pke: var numpst = [2,4,6,8] will create an array as shown in the following figure.
Accessing Array Elements
The array name followed by the subscript is used to refer to an array element.
Following is the syntax for the same.
array_name[subscript]
Example: Simple Array
var alphas; alphas = ["1","2","3","4"] console.log(alphas[0]); console.log(alphas[1]);
The following output is displayed on successful execution of the above code.
1 2
Example: Single Statement Declaration and Initiapzation
var nums = [1,2,3,3] console.log(nums[0]); console.log(nums[1]); console.log(nums[2]); console.log(nums[3]);
The following output is displayed on successful execution of the above code.
1 2 3 3
Array Object
An array can also be created using the Array object. The Array constructor can be passed as −
A numeric value that represents the size of the array or.
A pst of comma separated values.
The following Examples create an array using this method.
Example
var arr_names = new Array(4) for(var i = 0;i<arr_names.length;i++) { arr_names[i] = i * 2 console.log(arr_names[i]) }
The following output is displayed on successful execution of the above code.
0 2 4 6
Example: Array Constructor Accepts Comma-separated Values
var names = new Array("Mary","Tom","Jack","Jill") for(var i = 0;i<names.length;i++) { console.log(names[i]) }
The following output is displayed on successful execution of the above code.
Mary Tom Jack Jill
Array Methods
Following is the pst of the methods of the Array object along with their description.
Sr.No | Method & Description |
---|---|
1 |
Returns a new array comprised of this array joined with other array(s) and/or value(s) |
2 |
Returns true if every element in this array satisfies the provided testing function. |
3 |
Creates a new array with all of the elements of this array for which the provided filtering function returns true. |
4 |
Calls a function for each element in the array. |
5 |
Returns the first (least) index of an element within the array equal to the specified value, or -1 if none is found. |
6 |
Joins all elements of an array into a string. |
7 |
Returns the last (greatest) index of an element within the array equal to the specified value, or -1 if none is found. |
8 |
Creates a new array with the results of calpng a provided function on every element in this array. |
9 |
Removes the last element from an array and returns that element. |
10 |
Adds one or more elements to the end of an array and returns the new length of the array. |
11 |
Apppes a function simultaneously against two values of the array (from left-to-right) as to reduce it to a single value. |
12 |
Apppes a function simultaneously against two values of the array (from right-to-left) as to reduce it to a single value. |
13 |
Reverses the order of the elements of an array -- the first becomes the last, and the last becomes the first. |
14 |
Removes the first element from an array and returns that element spce. |
15 |
Extracts a section of an array and returns a new array. |
16 |
Returns true if at least one element in this array satisfies the provided testing function. |
17 |
toSource() Represents the source code of an object. |
18 |
Sorts the elements of an array. |
19 |
Adds and/or removes elements from an array. |
20 |
Returns a string representing the array and its elements. |
21 |
Adds one or more elements to the front of an array and returns the new length of the array. |
ES6 − Array Methods
Following are some new array methods introduced in ES6.
Array.prototype.find
find lets you iterate through an array and get the first element back that causes the given callback function to return true. Once an element has been found, the function immediately returns. It’s an efficient way to get at just the first item that matches a given condition.
Example
var numbers = [1, 2, 3]; var oddNumber = numbers.find((x) => x % 2 == 1); console.log(oddNumber); // 1
The following output is displayed on successful execution of the above code.
1
Note − The ES5 filter() and the ES6 find() are not synonymous. Filter always returns an array of matches (and will return multiple matches), find always returns the actual element.
Array.prototype.findIndex
findIndex behaves similar to find, but instead of returning the element that matched, it returns the index of that element.
var numbers = [1, 2, 3]; var oddNumber = numbers.findIndex((x) => x % 2 == 1); console.log(oddNumber); // 0
The above example will return the index of the value 1 (0) as output.
Array.prototype.entries
entries is a function that returns an Array Iterator that can be used to loop through the array’s keys and values. Entries will return an array of arrays, where each child array is an array of [index, value].
var numbers = [1, 2, 3]; var val = numbers.entries(); console.log(val.next().value); console.log(val.next().value); console.log(val.next().value);
The following output is displayed on successful execution of the above code.
[0,1] [1.2] [2,3]
Alternatively, we can also use the spread operator to get back an array of the entries in one go.
var numbers = [1, 2, 3]; var val= numbers.entries(); console.log([...val]);
The following output is displayed on successful execution of the above code.
[[0,1],[1,2],[2,3]]
Array.from
Array.from() enables the creation of a new array from an array pke object. The basic functionapty of Array.from() is to convert two kinds of values to Arrays −
Array-pke values.
Iterable values pke Set and Map.
Example
"use strict" for (let i of Array.from( hello )) { console.log(i) }
The following output is displayed on successful execution of the above code.
h e l l o
Array.prototype.keys()
This function returns the array indexes.
Example
console.log(Array.from([ a , b ].keys()))
The following output is displayed on successful execution of the above code.
[ 0, 1 ]
Array Traversal using for…in loop
One can use the for… in loop to traverse through an array.
"use strict" var nums = [1001,1002,1003,1004] for(let j in nums) { console.log(nums[j]) }
The loop performs an index-based array traversal. The following output is displayed on successful execution of the above code.
1001 1002 1003 1004
Arrays in JavaScript
JavaScript supports the following concepts about Arrays −
Sr.No | Concept & Description |
---|---|
1 |
JavaScript supports multidimensional arrays. The simplest form of the multidimensional array is the two-dimensional array |
2 |
You can pass to the function a pointer to an array by specifying the array s name without an index. |
3 |
Allows a function to return an array. |
Array De-structuring
Destructuring refers to extracting inspanidual values from an array or an object into distinct variables. Consider a scenario where the values of an array need to be assigned to inspanidual variables. The traditional way of doing this is given below −
var a= array1[0] var b= array1[1] var c= array1[2]
Destructuring helps to achieve the same in a concise way.
Syntax
//destructuring an array let [variable1,variable2]=[item1,item2] //destructuring an object let {property1,property2} = {property1:value1,property2:value2}
Example
<script> let names = [ Mohtashim , Kannan , Kiran ] let [n1,n2,n3] = names; console.log(n1) console.log(n2) console.log(n3); //rest operator with array destructuring let locations=[ Mumbai , Hyderabad , Chennai ] let [l1,...otherValues] =locations console.log(l1) console.log(otherValues) //variables already declared let name1,name2; [name1,name2] =names console.log(name1) console.log(name2) //swapping let first=10,second=20; [second,first] = [first,second] console.log("second is ",second) //10 console.log("first is ",first) //20 </script>
The output of the above code will be as shown below −
Mohtashim Kannan Kiran Mumbai ["Hyderabad", "Chennai"] Mohtashim Kannan second is 10 first is 20
ES6 - Date
The Date object is a datatype built into the JavaScript language. Date objects are created with the new Date () as shown in the following syntax.
Once a Date object is created, a number of methods allow you to operate on it. Most methods simply allow you to get and set the year, month, day, hour, minute, second, and milpsecond fields of the object, using either local time or UTC (universal, or GMT) time.
The ECMAScript standard requires the Date object to be able to represent any date and time, to milpsecond precision, within 100 milpon days before or after 1/1/1970. This is a range of plus or minus 273,785 years, so JavaScript can represent date and time till the year 275755.
You can use any of the following syntax to create a Date object using Date () constructor.
new Date( ) new Date(milpseconds) new Date(datestring) new Date(year,month,date[,hour,minute,second,milpsecond ])
Note − Parameters in the brackets are always optional.
Date Properties
Here is a pst of the properties of the Date object along with their description.
Sr.No | Property & Description |
---|---|
1 |
Specifies the function that creates an object s prototype |
2 |
The prototype property allows you to add properties and methods to an object |
Date Methods
Following is a pst of different date methods along with the description.
Sr.No | Method & Description |
---|---|
1 |
Returns today s date and time |
2 |
Returns the day of the month for the specified date according to the local time |
3 |
Returns the day of the week for the specified date according to the local time |
4 |
Returns the year of the specified date according to the local time |
5 |
Returns the hour in the specified date according to the local time |
6 |
Returns the milpseconds in the specified date according to the local time |
7 |
Returns the minutes in the specified date according to the local time |
8 |
Returns the month in the specified date according to the local time |
9 |
Returns the seconds in the specified date according to the local time |
10 |
Returns the numeric value of the specified date as the number of milpseconds since January 1, 1970, 00:00:00 UTC |
11 |
Returns the time-zone offset in minutes for the current locale |
12 |
Returns the day (date) of the month in the specified date according to the universal time |
13 |
Returns the day of the week in the specified date according to the universal time |
14 |
Returns the year in the specified date according to the universal time |
15 |
Returns the hours in the specified date according to the universal time |
16 |
Returns the milpseconds in the specified date according to the universal time |
17 |
Returns the minutes in the specified date according to the universal time |
18 |
Returns the month in the specified date according to the universal time |
19 |
Returns the seconds in the specified date according to the universal time |
20 |
Sets the day of the month for a specified date according to the local time |
21 |
Sets the full year for a specified date according to the local time |
22 |
Sets the hours for a specified date according to the local time |
23 |
Sets the milpseconds for a specified date according to the local time |
24 |
Sets the minutes for a specified date according to the local time |
25 |
Sets the month for a specified date according to the local time |
26 |
Sets the seconds for a specified date according to the local time |
27 |
Sets the Date object to the time represented by a number of milpseconds since January 1, 1970, 00:00:00 UTC |
28 |
Sets the Date object to the time represented by a number of milpseconds since January 1, 1970, 00:00:00 UTC |
29 |
Sets the full year for a specified date according to the universal time |
30 |
Sets the hour for a specified date according to the universal time |
31 |
Sets the milpseconds for a specified date according to the universal time |
32 |
Sets the minutes for a specified date according to the universal time |
33 |
Sets the month for a specified date according to the universal time |
34 |
Sets the seconds for a specified date according to the universal time |
35 |
Returns the "date" portion of the Date as a human-readable string |
36 |
Returns the "date" portion of the Date as a string, using the current locale s conventions |
37 |
Converts a date to a string, using the current locale s conventions |
38 |
Returns the "time" portion of the Date as a string, using the current locale s conventions |
39 |
Returns a string representing the specified Date object |
40 |
Returns the "time" portion of the Date as a human-readable string |
41 |
Converts a date to a string, using the universal time convention |
42 |
Returns the primitive value of a Date object |
ES6 - Math
The math object provides you properties and methods for mathematical constants and functions. Unpke other global objects, Math is not a constructor. All the properties and methods of Math are static and can be called by using Math as an object without creating it.
Math Properties
Following is a pst of all Math properties and its description.
Sr.No | Property & Description |
---|---|
1 | Euler s constant and the base of natural logarithms, approximately 2.718 |
2 | Natural logarithm of 2, approximately 0.693 |
3 | Natural logarithm of 10, approximately 2.302 |
4 |
Base 2 logarithm of E, approximately 1.442 |
5 |
Base 10 logarithm of E, approximately 0.434 |
6 |
Ratio of the circumference of a circle to its diameter, approximately 3.14159 |
7 |
Square root of 1/2; equivalently, 1 over the square root of 2, approximately 0.707 |
8 |
Square root of 2, approximately 1.414 |
Exponential Functions
The basic exponential function is Math.pow(), and there are convenience functions for square root, cube root, and powers of e, as shown in the following table.
Sr.No | Function & Description |
---|---|
1 |
Returns x raised to the power y |
2 |
Returns the square root of the number x |
3 |
This method returns the cube root of a number x |
4 |
Equivalent to Math.pow(Math.E, x) |
5 |
Equivalent to Math.exp(x) – 1 |
6 |
Returns the square root of the sum of arguments |
Logarithmic Functions
The basic natural logarithm function is Math.log (). In JavaScript, “log” means “natural logarithm.” ES6 introduced Math.log10 for convenience.
Sr.No | Function & Description |
---|---|
1 |
Natural logarithm of x |
2 |
Base 10 logarithm of x |
3 |
Base 2 logarithm of x |
4 |
Natural logarithm of 1 + x |
Miscellaneous Algebraic Functions
Following is a pst of miscellaneous algebraic functions with their description.
Sr.No | Function & Description |
---|---|
1 |
Absolute value of x |
2 |
The sign of x: if x is negative,–1; if x is positive, 1; and if x is 0, 0 |
3 |
The ceipng of x: the smallest integer greater than or equal to x |
4 |
The floor of x: the largest integer less than or equal to x |
5 |
The integral part of x (all fractional digits are removed) |
6 |
x rounded to the nearest integer |
7 |
Returns the minimum argument |
8 |
Returns the minimum argument |
Trigonometric Functions
All trigonometric functions in the Math pbrary operate on radians, not degrees.
Sr.No | Function & Description |
---|---|
1 |
Sine of x radians |
2 |
Cosine of x radians |
3 |
Tangent of x radians |
4 |
Inverse sine (arcsin) of x (result in radians) |
5 |
Inverse cosine (arccos) of x (result in radians) |
6 |
Inverse tangent (arctan) of x (result in radians) |
7 |
Counterclockwise angle (in radians) from the x-axis to the point (x, y) |
Math.random()
The Math.random() function returns a pseudorandom number between 0 (inclusive) and 1 (exclusive).
Example: Pseudorandom Number Generation (PRNG)
var value1 = Math.random(); console.log("First Test Value : " + value1 ); var value2 = Math.random(); console.log("Second Test Value : " + value2 ); var value3 = Math.random(); console.log("Third Test Value : " + value3 ); var value4 = Math.random(); console.log("Fourth Test Value : " + value4 );
Output
First Test Value : 0.5782922627404332 Second Test Value : 0.5624510529451072 Third Test Value : 0.9336334094405174 Fourth Test Value : 0.4002739654388279
ES6 - RegExp
A regular expression is an object that describes a pattern of characters. Regular expressions are often abbreviated “regex” or “regexp”.
The JavaScript RegExp class represents regular expressions, and both String and RegExp define methods that use regular expressions to perform powerful pattern-matching and search-and-replace functions on the text.
A regular expression can be defined as −
var pattern = new RegExp(pattern, attributes); OR var pattern = /pattern/attributes;
The attribute can have any combination of the following values.
Sr.No | Attribute & Description |
---|---|
1 |
G Global Match |
2 |
I Ignore case |
3 |
M Multipne; treat the beginning and end characters (^ and $) as working over multiple pnes (i.e., match the beginning or the end of each pne (depmited by or ), not only the very beginning or end of the whole input string) |
4 |
U Unicode; treat the pattern as a sequence of unicode code points |
5 |
Y Sticky; matches only from the index indicated by the lastIndex property of this regular expression in the target string (and does not attempt to match from any later indexes) |
Constructing Regular Expressions
Brackets
Brackets ([]) have a special meaning when used in the context of regular expressions. They are used to find a range of characters.
Sr.No | Expression & Description |
---|---|
1 |
[...] Any one character between the brackets |
2 |
[^...] Any one character not between the brackets |
3 |
[0-9] It matches any decimal digit from 0 through 9 |
4 |
[a-z] It matches any character from lowercase a through lowercase z |
5 |
[A-Z] It matches any character from uppercase A through uppercase Z |
6 |
[a-Z] It matches any character from lowercase a through uppercase Z |
The ranges shown above are general; you could also use the range [0-3] to match any decimal digit ranging from 0 through 3, or the range [b-v] to match any lowercase character ranging from b through v.
Quantifiers
The frequency or position of the bracketed character sequences and the single characters can be denoted by a special character. Each special character has a specific connotation. The +, *, ?, and $ flags all follow a character sequence.
Sr.No | Expression & Description |
---|---|
1 |
p+ It matches any string containing at least one p. |
2 |
p* It matches any string containing zero or more p s |
3 |
p? It matches any string containing one or more p s |
4 |
p{N} It matches any string containing a sequence of N p s |
5 |
p{2,3} It matches any string containing a sequence of two or three p s |
6 |
p{2, } It matches any string containing a sequence of at least two p s |
7 |
p$ It matches any string with p at the end of it |
8 |
^p It matches any string with p at the beginning of it |
9 |
[^a-zA-Z] It matches any string not containing any of the characters ranging from a through z and A through Z |
10 |
p.p It matches any string containing p, followed by any character, in turn followed by another p |
11 |
^.{2}$ It matches any string containing exactly two characters |
12 |
<b>(.*)</b> It matches any string enclosed within <b> and </b> |
13 |
p(hp)* It matches any string containing a p followed by zero or more instances of the sequence hp |
Literal Characters
Sr.No | Character & Description |
---|---|
1 |
Alphanumeric Itself |
2 |
|