- JavaScript Introduction
- JavaScript Where To
- JavaScript Output
- JavaScript Statements
- JavaScript Syntax
- JavaScript Comments
- JavaScript Variables
- JavaScript Let
- JavaScript Const
- JavaScript Operators
- JavaScript Assignment
- JavaScript Data Types
- JavaScript Functions
- JavaScript Objects
- JavaScript Events
- JavaScript Strings
- JavaScript String Methods
- JavaScript Numbers
- JavaScript Number Methods
- JavaScript Arrays
- JavaScript Array Const
- JavaScript Array Methods
- JavaScript Sorting Arrays
- JavaScript Array Iteration
- JavaScript Date Objects
- JavaScript Date Formats
- JavaScript Get Date Methods
- JavaScript Set Date Methods
- JavaScript Math Object
- JavaScript Random
- JavaScript Booleans
- JavaScript Comparison And Logical Operators
- JavaScript If Else And Else If
- JavaScript Switch Statement
- JavaScript For Loop
- JavaScript Break And Continue
- JavaScript Type Conversion
- JavaScript Bitwise Operations
- JavaScript Regular Expressions
- JavaScript Errors
- JavaScript Scope
- JavaScript Hoisting
- JavaScript Use Strict
- The JavaScript This Keyword
- JavaScript Arrow Function
- JavaScript Classes
- JavaScript JSON
- JavaScript Debugging
- JavaScript Style Guide
- JavaScript Common Mistakes
- JavaScript Performance
- JavaScript Reserved Words
- JavaScript Versions
- JavaScript History
- JavaScript Forms
- JavaScript Validation API
- JavaScript Objects
- JavaScript Object Properties
- JavaScript Function Definitions
- JavaScript Function Parameters
- JavaScript Function Invocation
- JavaScript Closures
- JavaScript Classes
- Java Script Async
- JavaScript HTML DOM
- The Browser Object Model
- JS Ajax
- JavaScript JSON
- JavaScript Web APIs
- JS Vs JQuery
JavaScript Syntax
JavaScript Syntax
1. Variables and Data Types:
JavaScript allows you to declare variables using var, let, or const:
- var is function-scoped and can be reassigned.
- let is block-scoped and can be reassigned.
- const is block-scoped but cannot be reassigned (it doesn't mean immutable, just that the variable reference cannot change).
Example:
let y = "Hello";
const PI = 3.14;
JavaScript has various data types:
- Primitive Types: Numbers, strings, booleans, null, undefined, symbols.
- Object Types: Arrays, functions, objects.
Example:
let number = 10;
let text = "Hello, World!";
let isTrue = true;
let fruits = ['apple', 'banana', 'orange'];
let person = { name: 'John', age: 30 };
2. Operators:
JavaScript supports various operators:
- Arithmetic Operators: +, -, *, /, %.
- Assignment Operators: =, +=, -=, *=, /=.
- Comparison Operators: ==, !=, ===, !==, >, <, >=, <=.
- Logical Operators: && (AND), || (OR), ! (NOT).
- Ternary Operator: condition ? value1 : value2.
- Typeof Operator: typeof variable (returns the data type of a variable).
Example:
let a = 10;
let b = 5;
let sum = a + b; // 15
let isGreater = a > b; // true
let result = (a > b) ? "A is greater" : "B is greater"; // "A is greater"
console.log(typeof a); // "number"
3. Control Flow Statements:
JavaScript provides conditional and looping statements:
if...else Statement:
javascript
Copy code
let age = 25;
if (age >= 18) {
console.log("You are an adult.");
} else {
console.log("You are a minor.");
}
switch Statement:
let day = 3;
switch (day) {
case 1:
console.log("Monday");
break;
case 2:
console.log("Tuesday");
break;
default:
console.log("Other day");
}
for Loop:
for (let i = 0; i < 5; i++) {
console.log(i);
}
while Loop:
let count = 0;
while (count < 3) {
console.log(count);
count++;
}
4. Functions:
Functions in JavaScript can be declared using the function keyword or using arrow functions () =>.
Function Declaration:
function greet(name) {
console.log("Hello, " + name + "!");
}
greet("John"); // Hello, John!
Arrow Function:
const multiply = (a, b) => {
return a * b;
}
console.log(multiply(5, 3)); // 15
5. Objects and Arrays:
JavaScript objects are collections of key-value pairs, and arrays are ordered lists of values.
Object:
name: 'Alice',
age: 30,
address: {
city: 'New York',
zip: 10001
}
};
console.log(person.name); // Alice
console.log(person.address.city); // New York
Array:
let colors = ['red', 'green', 'blue'];
console.log(colors[0]); // red
colors.push('yellow'); // Add an element to the end
console.log(colors.length); // 4
6. Classes and Prototypes:
JavaScript supports object-oriented programming through classes and prototypes.
Class:
class Rectangle {
constructor(width, height) {
this.width = width;
this.height = height;
}
calculateArea() {
return this.width * this.height;
}
}
let rect = new Rectangle(5, 10);
console.log(rect.calculateArea()); // 50
Prototype:
function Circle(radius) {
this.radius = radius;
}
Circle.prototype.calculateArea = function() {
return Math.PI * this.radius * this.radius;
};
let circle = new Circle(3);
console.log(circle.calculateArea()); // ~28.27
7. Error Handling:
JavaScript uses try...catch blocks for error handling.
try {
// Code that may throw an error
let result = x / y;
} catch (error) {
console.log("An error occurred: " + error.message);
}
8. Modules and Imports:
JavaScript allows modular programming using modules and imports/exports.
Module (math.js):
export function add(a, b) {
return a + b;
}
Import:
import { add } from './math.js';
console.log(add(3, 5)); // 8
9. Asynchronous Programming:
JavaScript supports asynchronous operations using callbacks, promises, and async/await.
Callback Function:
function fetchData(callback) {
setTimeout(() => {
callback("Data fetched");
}, 2000);
}
fetchData((data) => {
console.log(data);
});
Promise:
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Data fetched");
}, 2000);
});
}
fetchData().then((data) => {
console.log(data);
});
Async/Await:
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Data fetched");
}, 2000);
});
}
async function getData() {
const data = await fetchData();
console.log(data);
}
getData();
JavaScript syntax encompasses variables, operators, control flow, functions, objects, arrays, classes, error handling, modules, and asynchronous programming. Understanding these fundamental aspects is crucial for developing robust and efficient JavaScript applications.
Practice Excercise Practice now
JavaScript Values
JavaScript values refer to the different types of data that can be stored and manipulated in a JavaScript program. These values include primitive data types such as numbers, strings, booleans, null, undefined, symbols, as well as object types such as arrays, functions, and objects. Let's delve into each of these value types with examples.
1. Numbers:
Example:
let num2 = 3.14; // Floating-point number
2. Strings:
Example:
let str2 = "World"; // Double quotes
3. Booleans:
Example:
let isTrue = true;
let isFalse = false;
4. Null and Undefined:
Example:
let emptyValue = null;
let undefinedValue;
console.log(undefinedValue); // undefined
5. Symbols:
Example:
const sym1 = Symbol('description');
const sym2 = Symbol('description'); // Different from sym1
6. Arrays:
Example:
let numbers = [1, 2, 3, 4, 5];
let mixedArray = [1, 'hello', true, [6, 7, 8]];
7. Objects:
Example:
let person = {
name: 'Alice',
age: 30,
hobbies: ['reading', 'painting'],
greet: function() {
console.log('Hello!');
}
};
8. Functions:
Example:
function add(a, b) {
return a + b;
}
let result = add(5, 10); // 15
9. Regular Expressions:
Example:
let pattern = /[A-Z]/; // Matches uppercase letters
let emailPattern = /\S+@\S+\.\S+/; // Matches email addresses
10. Dates:
Example:
let currentDate = new Date();
console.log(currentDate); // Current date and time
11. Promises:
Example:
setTimeout(() => {
resolve('Data fetched successfully');
}, 2000);
});
promise.then((data) => {
console.log(data);
});
12. Nullish Coalescing Operator (??):
Example:
let defaultName = username ?? 'Guest';
console.log(defaultName); // Guest
13. BigInt:
Example:
const bigNumber = BigInt(9007199254740991);
console.log(bigNumber); // 9007199254740991n
14. Maps and Sets:
Example:
myMap.set('key1', 'value1');
let mySet = new Set([1, 2, 3, 3, 4, 5]);
console.log(mySet); // Set { 1, 2, 3, 4, 5 }
15. JSON (JavaScript Object Notation):
Example:
let jsonData = '{"name": "John", "age": 30}';
let parsedData = JSON.parse(jsonData);
console.log(parsedData.name); // John
16. Template Literals:
Example:
let greeting = `Hello, ${name}!
How are you?`;
console.log(greeting);
17. Iterators and Generators:
Example:
let count = 0;
while (true) {
yield count++;
}
}
let counter = countGenerator();
console.log(counter.next().value); // 0
18. ArrayBuffer and Typed Arrays:
Example:
let intArray = new Int32Array(buffer);
intArray[0] = 42;
console.log(intArray); // Int32Array [ 42, 0, 0, 0 ]
19. Proxy Objects:
Example:
let handler = {
get: function(target, prop, receiver) {
return prop in target ? target[prop] : 'Property not found';
}
};
let proxyObj = new Proxy(targetObj, handler);
console.log(proxyObj.name); // Property not found
20. Symbols in Objects:
Example:
const privateProperty = Symbol('private');
let obj = {
[privateProperty]: 'This is a private property'
};
console.log(obj[privateProperty]); // This is a private property
Practice Excercise Practice now
JavaScript Literals
JavaScript literals are fixed values that you literally provide in your script. These values can be numbers, strings, objects, arrays, booleans, null, or even regular expressions. This guide will cover each type of literal in detail, providing examples for better understanding.
1. Numeric Literals
Decimal (Base 10):
Binary (Base 2):
Octal (Base 8):
Hexadecimal (Base 16):
2. String Literals
Single Quotes:
Double Quotes:
Template Literals:
let templateString = `Hello, ${name}!`;
3. Boolean Literals
True:
False:
4. Null Literal
5. Undefined Literal
console.log(notAssigned); // undefined
6. Object Literals
firstName: 'John',
lastName: 'Doe',
age: 30
};
You can also include methods in object literals:
let personWithMethod = {
firstName: 'Jane',
lastName: 'Doe',
greet: function() {
return `Hello, ${this.firstName} ${this.lastName}!`;
}
};
7. Array Literals
Arrays can contain mixed types of values:
8. Regular Expression Literals
You can also include flags:
9. Function Literals
return a + b;
};
ES6 introduced arrow functions which provide a more concise syntax for function literals:
10. BigInt Literals
11. Symbol Literals
Examples in Context
// Numeric Literals
let age = 25;
let binaryAge = 0b11001;
let hexAge = 0x19;
let octalAge = 0o31;
// String Literals
let firstName = "John";
let lastName = 'Doe';
let fullName = `${firstName} ${lastName}`;
// Boolean Literals
let isAdult = true;
let isStudent = false;
// Null and Undefined Literals
let job = null;
let car; // undefined
// Object Literal
let person = {
firstName: "Jane",
lastName: "Doe",
age: 28,
isEmployed: true,
greet: function() {
return `Hi, I'm ${this.firstName} ${this.lastName}.`;
}
};
// Array Literal
let hobbies = ['Reading', 'Cycling', 'Hiking'];
// Regular Expression Literal
let emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
// Function Literals
let greet = function(name) {
return `Hello, ${name}!`;
};
let greetArrow = name => `Hello, ${name}!`;
// BigInt Literal
let bigNumber = 1234567890123456789012345678901234567890n;
// Symbol Literal
let uniqueID = Symbol('id');
// Logging examples
console.log(age, binaryAge, hexAge, octalAge); // 25 25 25 25
console.log(firstName, lastName, fullName); // John Doe John Doe
console.log(isAdult, isStudent); // true false
console.log(job); // null
console.log(car); // undefined
console.log(person.greet()); // Hi, I'm Jane Doe.
console.log(hobbies); // ['Reading', 'Cycling', 'Hiking']
console.log(emailPattern.test('test@example.com')); // true
console.log(greet('Alice')); // Hello, Alice!
console.log(greetArrow('Bob')); // Hello, Bob!
console.log(bigNumber); // 1234567890123456789012345678901234567890n
console.log(uniqueID); // Symbol(id)
JavaScript literals are a fundamental part of the language, allowing you to represent data in various forms directly in your code. Understanding and utilizing these literals effectively can greatly enhance your ability to write concise and readable JavaScript programs. From simple numeric and string literals to complex object and function literals, each type serves a unique purpose in making JavaScript a powerful and flexible language.
Practice Excercise Practice now
JavaScript Variables
Introduction to JavaScript Variables
Variables in JavaScript are containers that hold data values. They are fundamental to programming as they allow us to store, retrieve, and manipulate data. Understanding variables is crucial for anyone looking to write effective and efficient JavaScript code.
Declaring Variables
In JavaScript, variables can be declared using three keywords: var, let, and const. Each keyword has specific scoping rules and usage scenarios.
Using var
The var keyword was the original way to declare variables in JavaScript. Variables declared with var are function-scoped, which means they are accessible within the function they are declared in.
var x = 10;
console.log(x); // 10
}
example();
- console.log(x); // ReferenceError: x is not defined
- In the example above, x is only accessible within the example function.
Using let
The let keyword, introduced in ECMAScript 2015 (ES6), allows for block-scoped variable declarations. A block is defined by curly braces {}.
{
let y = 20;
console.log(y); // 20
}
console.log(y); // ReferenceError: y is not defined
Here, y is only accessible within the block where it is declared.
Using const
The const keyword, also introduced in ES6, is used to declare variables that cannot be reassigned. Like let, const is block-scoped.
const z = 30;
console.log(z); // 30
z = 40; // TypeError: Assignment to constant variable.
While the value of a const variable cannot be changed, its properties can be modified if it is an object.
const person = { name: 'John', age: 25 };
person.age = 26;
console.log(person.age); // 26
Variable Naming Rules
When naming variables in JavaScript, follow these rules:
- Variables must begin with a letter, underscore _, or dollar sign $.
- Subsequent characters can be letters, digits, underscores, or dollar signs.
- Variable names are case-sensitive (e.g., myVar and myvar are different variables).
- Reserved words cannot be used as variable names (e.g., class, return, function).
Examples of Valid and Invalid Variable Names
// Valid variable names
let myVar;
let _myVar;
let $myVar;
let myVar1;
// Invalid variable names
let 1myVar; // Cannot start with a digit
let my-Var; // Cannot contain hyphens
let var; // Cannot use reserved keywords
Variable Initialization
Variables in JavaScript can be declared without initialization. If a variable is declared without being initialized, it has the value undefined.
console.log(a); // undefined
Variables can be initialized at the time of declaration.
console.log(b); // 5
Multiple variables can be declared and initialized in a single statement.
let c = 3, d = 4, e = 5;
console.log(c, d, e); // 3 4 5
Scope and Hoisting
Global Scope
Variables declared outside any function or block are in the global scope and can be accessed from anywhere in the code.
var globalVar = "I am global";
function checkGlobal() {
console.log(globalVar); // I am global
}
checkGlobal();
console.log(globalVar); // I am global
Local Scope
Variables declared within a function or block are in the local scope and can only be accessed within that function or block.
function localScopeExample() {
var localVar = "I am local";
console.log(localVar); // I am local
}
localScopeExample();
console.log(localVar); // ReferenceError: localVar is not defined
Hoisting
JavaScript's default behavior of moving declarations to the top of the current scope is called hoisting. Only the declaration is hoisted, not the initialization.
console.log(hoistedVar); // undefined
var hoistedVar = "This variable is hoisted";
// Equivalent to:
var hoistedVar;
console.log(hoistedVar); // undefined
hoistedVar = "This variable is hoisted";
Variables declared with let and const are not hoisted in the same way as var.
let notHoistedVar = "This variable is not hoisted";
Data Types and Variables
- Primitive types: string, number, boolean, null, undefined, symbol, and bigint.
- Reference types: object, array, and function.
Primitive Types
String
Strings are sequences of characters and can be defined using single quotes, double quotes, or backticks (template literals).
let str2 = "World";
let str3 = `Hello, ${str2}!`;
console.log(str3); // Hello, World!
Number
Numbers can be integers or floating-point values.
let floatNum = 12.34;
Boolean
Booleans represent logical values: true or false.
let isTrue = true;
let isFalse = false;
Null
null represents the intentional absence of any object value.
Undefined
undefined indicates that a variable has not been assigned a value.
console.log(notAssigned); // undefined
Symbol
Symbols are unique and immutable primitive values and can be used as object property identifiers.
let sym2 = Symbol('description');
console.log(sym1 === sym2); // false
BigInt
BigInt is used for integers larger than the maximum safe integer in JavaScript (2^53 - 1).
console.log(bigIntNum); // 123456789012345678901234567890n
Reference Types
Objects
Objects are collections of key-value pairs.
let person = {
name: 'Alice',
age: 30,
greet: function() {
console.log('Hello, ' + this.name);
}
};
console.log(person.name); // Alice
person.greet(); // Hello, Alice
Arrays
Arrays are ordered collections of values.
let fruits = ['Apple', 'Banana', 'Cherry'];
console.log(fruits[1]); // Banana
Functions
Functions are blocks of code designed to perform a particular task.
return a + b;
}
let sum = add(5, 7);
console.log(sum); // 12
Variable Best Practices
Use let and const Instead of var
Using let and const helps avoid issues related to variable hoisting and improves code readability.
// Use const for variables that won't be reassigned
const PI = 3.14;
// Use let for variables that may change
let radius = 5;
let area = PI * radius * radius;
console.log(area); // 78.5
Descriptive Variable Names
Choose meaningful and descriptive names for variables to make your code more understandable.
let a = 10;
let b = 20;
// Good
let width = 10;
let height = 20;
Avoid Global Variables
Global variables can be modified from anywhere in the code, which can lead to unexpected behaviors. Use local variables as much as possible.
let length = 10;
let breadth = 5;
return length * breadth;
}
let area = calculateArea();
console.log(area); // 50
Use const for Constants
If a value should not change throughout the program, declare it with const.
Variables are essential to JavaScript programming. They allow you to store, manipulate, and retrieve data within your code. Understanding the differences between var, let, and const, as well as their scoping rules and hoisting behavior, is crucial for writing clean and efficient code. Always use descriptive names for variables, prefer let and const over var, and minimize the use of global variables to avoid unintended side effects.
Practice Excercise Practice now
JavaScript Operators
JavaScript operators are special symbols or keywords that perform operations on one or more operands (data values) and produce a result. Understanding operators is fundamental for effective JavaScript programming as they are used in almost every aspect of the language, from simple arithmetic to complex logical operations.
Types of JavaScript Operators
JavaScript operators can be categorized into several types:
- Arithmetic Operators
- Assignment Operators
- Comparison Operators
- Logical Operators
- Bitwise Operators
- String Operators
- Conditional (Ternary) Operator
Type Operators
1. Arithmetic Operators
Arithmetic operators are used to perform mathematical operations on numbers.
Addition (+): Adds two operands.
let y = 10;
let result = x + y; // 15
Subtraction (-): Subtracts the second operand from the first.
Multiplication (*): Multiplies two operands.
Division (/): Divides the first operand by the second.
Modulus (%): Returns the remainder of a division.
Exponentiation ()**: Raises the first operand to the power of the second operand.
Increment (++): Increases an integer value by one.
Decrement (--): Decreases an integer value by one.
2. Assignment Operators
Assignment operators are used to assign values to variables.
Assignment (=): Assigns the right operand value to the left operand.
Addition Assignment (+=): Adds the right operand to the left operand and assigns the result to the left operand.
Subtraction Assignment (-=): Subtracts the right operand from the left operand and assigns the result to the left operand.
Multiplication Assignment (*=): Multiplies the right operand with the left operand and assigns the result to the left operand.
Division Assignment (/=): Divides the left operand by the right operand and assigns the result to the left operand.
Modulus Assignment (%=): Takes modulus using the two operands and assigns the result to the left operand.
Exponentiation Assignment (=)**: Raises the left operand to the power of the right operand and assigns the result to the left operand.
3. Comparison Operators
Comparison operators are used to compare two values and return a boolean value (true or false).
Equal to (==): Checks if two values are equal.
Not equal to (!=): Checks if two values are not equal.
Strict equal to (===): Checks if two values are equal in value and type.
Strict not equal to (!==): Checks if two values are not equal in value or type.
Greater than (>): Checks if the left value is greater than the right value.
Less than (<): Checks if the left value is less than the right value.
Greater than or equal to (>=): Checks if the left value is greater than or equal to the right value.
Less than or equal to (<=): Checks if the left value is less than or equal to the right value.
4. Logical Operators
Logical operators are used to combine or invert boolean values.
Logical AND (&&): Returns true if both operands are true.
Logical OR (||): Returns true if at least one operand is true.
Logical NOT (!): Inverts the boolean value of the operand.
5. Bitwise Operators
Bitwise operators perform operations on the binary representations of numbers.
AND (&): Returns a 1 in each bit position where both corresponding bits are 1.
OR (|): Returns a 1 in each bit position where at least one of the corresponding bits is 1.
XOR (^): Returns a 1 in each bit position where the corresponding bits are different.
NOT (~): Inverts all the bits of the operand.
Left Shift (<<): Shifts the bits of the operand to the left by the specified number of positions.
Right Shift (>>): Shifts the bits of the operand to the right by the specified number of positions.
Unsigned Right Shift (>>>): Shifts the bits of the operand to the right by the specified number of positions, filling in zeros from the left.
6. String Operators
String operators are used to perform operations on strings.
Concatenation (+): Joins two or more strings together.
Concatenation Assignment (+=): Appends the right operand to the left operand and assigns the result to the left operand.
greeting += " World!"; // "Hello World!"
7. Conditional (Ternary) Operator
The conditional (ternary) operator assigns a value to a variable based on a condition.
Syntax: condition ? expressionIfTrue : expressionIfFalse
8. Type Operators
Type operators are used to determine or change the type of a value.
typeof: Returns a string indicating the type of the operand.
instanceof: Tests whether an object is an instance of a constructor.
void: Evaluates an expression without returning a value.
Practice Excercise Practice now
JavaScript Expressions
What is a JavaScript Expression?
In programming, an expression is a combination of variables, values, operators, and functions that produces a single value. It can be as simple as a single variable or as complex as a combination of multiple operations.
Types of JavaScript Expressions
Literal Expressions: These are constants or values directly written in the code, such as numbers, strings, arrays, and objects.
Example:
let number = 10; // Number literal expression
let string = 'Hello'; // String literal expression
let array = [1, 2, 3]; // Array literal expression
let object = { key: 'value' }; // Object literal expression
Arithmetic Expressions: These involve arithmetic operations like addition, subtraction, multiplication, and division.
Example:
Logical Expressions: These involve logical operations such as AND, OR, and NOT.
Example:
String Expressions: These involve string operations like concatenation.
Example:
Comparison Expressions: These involve comparison operations like equal to, not equal to, greater than, etc.
Example:
Conditional (Ternary) Expressions: These are expressions that involve the conditional (ternary) operator ? :.
Example:
Function Expressions: These involve defining functions and calling them.
Example:
let squaredValue = square(5); // Calling the function expression
Array and Object Initializer Expressions: These are expressions used to initialize arrays and objects.
Example:
let person = { name: 'Alice', age: 30 }; // Object initializer expression
Examples of JavaScript Expressions
Let's dive deeper into each type of expression with examples:
Literal Expressions:
let number = 10; // Number literal expression
let string = 'Hello'; // String literal expression
let array = [1, 2, 3]; // Array literal expression
let object = { key: 'value' }; // Object literal expression
Arithmetic Expressions:
let total = (10 + 5) * 2; // Parentheses can change the order of operations
Logical Expressions:
let isFalse = !true; // Logical NOT expression
String Expressions:
let greeting = 'Hello, ' + fullName + '!'; // Concatenation with variables
Comparison Expressions:
let isGreater = (10 > 5); // Greater than comparison expression
Conditional (Ternary) Expressions:
let isAdult = (age >= 18) ? 'Adult' : 'Minor'; // Conditional expression
Function Expressions:
let squaredValue = square(5); // Calling the function expression
Array and Object Initializer Expressions:
let person = { name: 'Alice', age: 30 }; // Object initializer expression
Evaluating JavaScript Expressions
Expressions are often used in assignments, function calls, conditionals, and loops to perform computations and make decisions. For example:
Assigning the result of an expression to a variable:
Using expressions in function calls:
Using expressions in conditionals:
if (age >= 18) {
console.log('You are an adult.');
} else {
console.log('You are a minor.');
}
Using expressions in loops:
console.log(i); // Outputs numbers from 0 to 4
}
Practice Excercise Practice now
JavaScript Keywords
JavaScript keywords are reserved words that have special meanings in the language. They cannot be used as identifiers (such as variable names or function names) because they are already predefined in the language. Here's a comprehensive guide to JavaScript keywords with explanations and examples:
1. var
The var keyword is used to declare variables in JavaScript.
Example:2. let
The let keyword is used to declare block-scoped variables. It is preferred over var in modern JavaScript.
3. const
The const keyword is used to declare constants whose values cannot be changed once assigned.
4. if
The if keyword is used to perform conditional execution based on a specified condition.
Example:
console.log('Positive number');
} else {
console.log('Non-positive number');
}
5. else
The else keyword is used in conjunction with if to execute code when the if condition is false.
Example:console.log('Positive number');
} else {
console.log('Non-positive number');
}
6. else if
The else if keyword is used to add additional conditions to an if statement.
Example:console.log('Positive number');
} else if (x < 0) {
console.log('Negative number');
} else {
console.log('Zero');
}
7. switch
The switch keyword is used to execute one block of code among many alternatives based on the value of an expression.
Example:case 1:
console.log('Monday');
break;
case 2:
console.log('Tuesday');
break;
default:
console.log('Invalid day');
}
8. case
The case keyword is used within a switch statement to specify different cases for comparison.
Example:switch (day) {
case 1:
console.log('Monday');
break;
case 2:
console.log('Tuesday');
break;
default:
console.log('Invalid day');
}
9. break
The break keyword is used to exit a loop or switch statement.
Example:for (let i = 0; i < 5; i++) {
if (i === 3) {
break;
}
console.log(i);
}
10. continue
The continue keyword is used to skip the current iteration of a loop and proceed to the next iteration.
Example:if (i === 2) {
continue;
}
console.log(i);
}
11. while
The while keyword is used to create a loop that executes a block of code as long as a specified condition is true.
Example:
while (i < 5) {
console.log(i);
i++;
}
12. do
The do keyword is used with while to create a loop that executes a block of code at least once, and then repeats the loop as long as a specified condition is true.
Example:
do {
console.log(i);
i++;
} while (i < 5);
13. for
The for keyword is used to create a loop with three optional expressions: initialization, condition, and increment/decrement.
Example:console.log(i);
}
14. function
The function keyword is used to define a function in JavaScript.
Example:console.log('Hello, ' + name + '!');
}
15. return
The return keyword is used to exit a function and specify the value to be returned to the caller.
Example:return a + b;
}
16. new
The new keyword is used to create an instance of an object or a user-defined constructor function.
Example:17. this
The this keyword refers to the object on which a method is currently being called.
Example:let person = {
name: 'John',
greet: function() {
console.log('Hello, ' + this.name + '!');
}
};
18. typeof
The typeof keyword is used to determine the type of a variable or an expression.
Example:19. instanceof
The instanceof keyword is used to determine if an object is an instance of a particular class or constructor.
Example:car instanceof Car; // Returns true
20. delete
The delete keyword is used to remove a property from an object.
Example:name: 'John',
age: 30
};
delete person.age;
Practice Excercise Practice now
JavaScript Comments
1. Single-line Comments
Single-line comments start with // and extend until the end of the line. They are used for short comments or explanations within the code.
Example:
let x = 5; // Variable initialization
2. Multi-line Comments
Multi-line comments start with /* and end with */. They can span multiple lines and are useful for longer comments or explanations.
Example:
This is a multi-line comment
It can span multiple lines
Useful for documenting code sections
*/
3. Comments for Code Documentation
Comments are often used to document code, especially functions and complex logic, to explain their purpose, parameters, and return values.
Example:
function calculateArea(length, width) {
// Area formula: length * width
let area = length * width;
return area; // Return the calculated area
}
4. Comments for Debugging
Comments can be used for debugging purposes, such as commenting out code temporarily to isolate issues or adding debugging notes.
Example:
console.log('Debug message:', variable);
5. Comments for Future Reference
Comments can serve as reminders or notes for future modifications or enhancements to the codebase.
Example:
6. Comments in HTML and JavaScript Integration
In HTML files containing JavaScript code, comments can be used to clarify JavaScript sections or integration points.
Example:
// JavaScript code here
</script>
7. Comments in JSX (React)
When working with JSX in React applications, comments can be used within JSX elements to describe the UI structure or logic.
Example:
return (
<div>
{/* Render a list of items */}
{items.map(item => <Item key={item.id} item={item} />)}
</div>
);
8. Comments for Conditional Logic
Comments can be used to describe conditional logic or branches in the code, making it easier to understand the flow.
Example:
// Code block executed when the condition is true
} else {
// Code block executed when the condition is false
}
9. Comments for Functionality Explanation
Comments are useful for explaining the functionality of specific code segments, especially for complex algorithms or non-obvious logic.
Example:
if (validateData(data)) {
processData(data);
} else {
console.error('Invalid data');
}
10. Comments for Deprecation or Removal
Comments can indicate deprecated code or sections that are planned for removal in future versions of the software.
Example:
// Deprecated: Use newFunction() instead
function oldFunction() {
// Old code here
}
Best Practices for Comments in JavaScript
- Be Clear and Concise: Write comments that are easy to understand and directly relate to the code they describe.
- Use Proper Grammar: Maintain consistency in writing style and grammar for readability.
- Update Comments: Keep comments updated as code evolves to ensure they remain accurate and helpful.
- Avoid Redundancy: Comment only where necessary, focusing on complex or non-obvious parts of the code.
- Use Comments Sparingly: Write self-explanatory code whenever possible, reducing the need for excessive comments.
Practice Excercise Practice now
JavaScript Identifiers
An identifier in JavaScript is a sequence of characters that represent a variable, function, class, object, or label. Identifiers are used to uniquely identify and reference these elements within the code. They can include letters, digits, underscores (_), and dollar signs ($) but must follow certain rules and conventions.
Rules for JavaScript Identifiers:
Start with a Letter, Underscore (_), or Dollar Sign ($): Identifiers must begin with a letter (a-z or A-Z), an underscore (_), or a dollar sign ($). For example, varName, _variable, $count.
Subsequent Characters: After the initial character, identifiers can include letters, digits (0-9), underscores (_), or dollar signs ($). They cannot start with a digit. For example, myVariable, total_count, firstName1.
Case Sensitivity: JavaScript identifiers are case-sensitive. This means that myVar and myvar are considered different identifiers.
Reserved Words: Identifiers cannot be reserved words or keywords used in JavaScript. For example, you cannot name a variable function, class, if, else, etc.
Unicode Characters: JavaScript allows Unicode characters (UTF-8) in identifiers. However, it's a best practice to use English letters and avoid non-ASCII characters for compatibility and readability.
Cannot Contain Spaces: Identifiers cannot contain spaces. If you need a multi-word identifier, use camelCase, snake_case, or kebab-case conventions.
Examples of Valid Identifiers:
- firstName
- _totalCount
- $amount
- variable123
- calculateSum
- userEmail
- myFunction
- PI
- snake_case_variable
- kebab-case-variable
Examples of Invalid Identifiers:
- 123variable (Starts with a digit)
- first name (Contains space)
- if (Reserved keyword)
- break (Reserved keyword)
- let (Reserved keyword)
- var-name (Contains hyphen)
JavaScript Identifier Conventions:
Camel Case: In JavaScript, camelCase is a common convention for naming variables, functions, and object properties. It starts with a lowercase letter and each subsequent word begins with a capital letter. Example: firstName, totalAmount, calculateInterest.
Snake Case: Snake case uses underscores (_) to separate words in an identifier. It is commonly used for naming constants or variables in some coding styles. Example: first_name, total_count, calculate_sum.
Kebab Case: Kebab case uses hyphens (-) to separate words in an identifier. While not as common in JavaScript, it is used in CSS and some JavaScript libraries for naming classes or IDs. Example: user-profile, nav-bar, button-primary.
Using Identifiers in JavaScript:
Variables:
const MAX_COUNT = 100;
Functions:
return a + b;
}
Objects:
firstName: 'John',
lastName: 'Doe'
};
Classes:
class Rectangle {
constructor(width, height) {
this.width = width;
this.height = height;
}
calculateArea() {
return this.width * this.height;
}
}
Labels:
outerLoop:
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
if (i * j === 8) {
console.log('Breaks the outer loop');
break outerLoop;
}
}
}
Best Practices for JavaScript Identifiers:
- Descriptive and Meaningful: Use meaningful names that describe the purpose or content of the identifier. This improves code readability and understanding.
- Consistent Naming Convention: Stick to a consistent naming convention (camelCase, snake_case, kebab-case) throughout your codebase for uniformity.
- Avoid Abbreviations: Avoid excessive abbreviations in identifiers. Use clear and understandable names even if they are slightly longer.
- Avoid Reserved Words: Never use reserved words or keywords as identifiers in JavaScript.
- Use English Letters: While JavaScript allows Unicode characters, it's recommended to use English letters for identifiers to ensure compatibility and readability.
- Follow Coding Standards: If working in a team or following a specific coding standard (like Airbnb, Google), adhere to the conventions and guidelines for naming identifiers.
Practice Excercise Practice now
JavaScript Is Case Sensitive
JavaScript is a case-sensitive language. This means that it treats uppercase and lowercase letters as distinct, which can significantly affect how code is written and understood. In this guide, we will explore what case sensitivity means in JavaScript, why it matters, and provide various examples to illustrate these concepts.
What is Case Sensitivity?
In programming, case sensitivity refers to the distinction between uppercase and lowercase letters. A language that is case-sensitive will consider "Variable" and "variable" as two different identifiers. This contrasts with case-insensitive languages, which treat them as the same.
Key Points:
- Identifiers: Variable names, function names, and other identifiers must be used consistently with the same casing.
- Keywords: JavaScript keywords must be written in lowercase (e.g., if, else, for).
- Strings: String comparisons are case-sensitive by default.
Importance of Case Sensitivity in JavaScript
- Consistency: Helps maintain consistency in code, which improves readability and reduces errors.
- Distinguishing Identifiers: Allows the use of similar identifiers for different purposes (e.g., data and Data can be different variables).
- Convention Adherence: Encourages adherence to naming conventions such as camelCase for variables and functions.
Examples of Case Sensitivity in JavaScript
Variables
Variables in JavaScript are case-sensitive. Consider the following examples:
let myVariable = 10;
let myvariable = 20;
console.log(myVariable); // Outputs: 10
console.log(myvariable); // Outputs: 20
In this case, myVariable and myvariable are treated as distinct variables.
Function Names
Function names are also case-sensitive:
function myFunction() {
return "Hello, World!";
}
function MyFunction() {
return "Hello, Universe!";
}
console.log(myFunction()); // Outputs: Hello, World!
console.log(MyFunction()); // Outputs: Hello, Universe!
myFunction and MyFunction are two different functions.
Keywords
JavaScript keywords must be written in lowercase:
console.log("This will cause an error.");
}
if (true) {
console.log("This will work.");
}
Using IF instead of if will cause a syntax error because JavaScript does not recognize IF as a valid keyword.
Object Properties
Object property names are case-sensitive:
let person = {
firstName: "John",
firstname: "Doe"
};
console.log(person.firstName); // Outputs: John
console.log(person.firstname); // Outputs: Doe
firstName and firstname are considered different properties.
String Comparisons
String comparisons in JavaScript are case-sensitive:
let string1 = "Hello";
let string2 = "hello";
console.log(string1 === string2); // Outputs: false
"Hello" and "hello" are different strings due to their case.
Common Pitfalls and Best Practices
Pitfalls
- Typos: A common issue is typing errors where the case does not match the intended identifier.
- Inconsistent Naming: Using inconsistent casing for identifiers can lead to bugs that are difficult to trace.
- Frameworks and Libraries: When using third-party code, ensure you match the casing used by the library.
Best Practices
- Consistent Naming Conventions: Stick to established conventions like camelCase for variables and functions, PascalCase for classes, and UPPERCASE for constants.
- Code Reviews: Regular code reviews can help catch case-sensitivity issues.
- Linters: Use tools like ESLint to enforce consistent naming conventions.
Practice Excercise Practice now
JavaScript And Camel Case
JavaScript is a popular programming language used primarily for web development. One of the important aspects of writing clean and maintainable JavaScript code is adhering to naming conventions. Camel case is a widely adopted naming convention in the JavaScript community. This article provides an in-depth exploration of camel case in JavaScript, its importance, and examples to illustrate its use.
What is Camel Case?
Camel case is a naming convention in which the first letter of the first word is lowercase, and the first letter of each subsequent concatenated word is capitalized. This convention is called "camel case" because the capital letters within the variable name resemble the humps of a camel.
Types of Camel Case
- Lower Camel Case (camelCase): The first letter of the first word is in lowercase, and the first letter of each subsequent word is in uppercase.
- Upper Camel Case (PascalCase): The first letter of each word, including the first one, is in uppercase.
Examples of Camel Case
- firstName (lower camel case)
- lastName (lower camel case)
- EmployeeDetails (upper camel case)
- ProductID (upper camel case)
Importance of Camel Case in JavaScript
Readability
Camel case enhances the readability of code by clearly delineating the boundaries between words in an identifier. This is particularly useful in JavaScript, where variable names often contain multiple words.
Consistency
Using camel case consistently across a codebase helps maintain uniformity, making it easier for developers to read, understand, and maintain the code.
Best Practices
Following a consistent naming convention such as camel case is considered a best practice in JavaScript development. It aligns with the conventions used by the broader JavaScript community, improving collaboration and reducing the likelihood of errors.
Camel Case in JavaScript: Practical Examples
Variables
In JavaScript, camel case is typically used for variable names.
let accountBalance = 500.75;
Functions
Function names also follow camel case convention.
return price + (price * taxRate);
}
Objects and Properties
Object properties in JavaScript commonly use camel case.
firstName: 'John',
lastName: 'Doe',
emailAddress: 'john.doe@example.com'
};
Classes
While classes in JavaScript often use PascalCase (a variation of camel case), understanding both conventions is useful.
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
getFullName() {
return `${this.firstName} ${this.lastName}`;
}
}
const user = new UserAccount('John', 'Doe');
console.log(user.getFullName()); // Output: John Doe
Example: Using Camel Case in a JavaScript Application
Let's consider a more comprehensive example. Suppose we are building a simple application to manage a list of books. We will use camel case for variable names, function names, and object properties.
// Book constructor function using PascalCase for the class name
function Book(title, author, publicationYear) {
this.title = title;
this.author = author;
this.publicationYear = publicationYear;
}
// Function to add a new book to the library
function addBook(library, title, author, publicationYear) {
const newBook = new Book(title, author, publicationYear);
library.push(newBook);
}
// Function to find a book by title
function findBookByTitle(library, title) {
return library.find(book => book.title === title);
}
// Function to list all books in the library
function listAllBooks(library) {
library.forEach(book => {
console.log(`${book.title} by ${book.author}, published in ${book.publicationYear}`);
});
}
// Creating an empty library
const library = [];
// Adding books to the library
addBook(library, 'JavaScript: The Good Parts', 'Douglas Crockford', 2008);
addBook(library, 'Eloquent JavaScript', 'Marijn Haverbeke', 2018);
addBook(library, 'You Don\'t Know JS', 'Kyle Simpson', 2015);
// Finding a book by title
const book = findBookByTitle(library, 'Eloquent JavaScript');
console.log(book); // Output: Book { title: 'Eloquent JavaScript', author: 'Marijn Haverbeke', publicationYear: 2018 }
// Listing all books
listAllBooks(library);
// Output:
// JavaScript: The Good Parts by Douglas Crockford, published in 2008
// Eloquent JavaScript by Marijn Haverbeke, published in 2018
// You Don't Know JS by Kyle Simpson, published in 2015
In this example, camel case is used consistently for function names (addBook, findBookByTitle, listAllBooks), object properties (title, author, publicationYear), and variable names (library, newBook, book).
Common Mistakes and How to Avoid Them
Inconsistent Naming
Using inconsistent naming conventions can lead to confusion and bugs. Stick to camel case for variables, functions, and object properties.
// Inconsistent naming
let UserName = 'JohnDoe';
let user_age = 30;
function GetUserDetails() { /* ... */ }
// Consistent naming with camel case
let userName = 'JohnDoe';
let userAge = 30;
function getUserDetails() { /* ... */ }
Mixing Camel Case with Other Conventions
Avoid mixing camel case with other naming conventions such as snake_case or kebab-case within the same codebase.
// Mixing conventions
let user_name = 'JohnDoe'; // snake_case
let user-email = 'john.doe@example.com'; // kebab-case (invalid in JavaScript)
// Using camel case consistently
let userName = 'JohnDoe';
let userEmail = 'john.doe@example.com';
Case Sensitivity Issues
JavaScript is case-sensitive, so userName and username are considered different variables. Be mindful of this to avoid subtle bugs.
let userName = 'JohnDoe';
let username = 'JaneDoe'; // Different variable
console.log(userName); // JohnDoe
console.log(username); // JaneDoe
Practice Excercise Practice now
JavaScript Character Set
JavaScript, like most modern programming languages, relies on a character set to understand and execute code. The character set defines the characters recognized and how they are represented internally. In this comprehensive guide, we will explore the JavaScript character set, its components, and examples to illustrate its practical use.
1. Introduction to Character Sets
A character set is a collection of characters that a language recognizes and can manipulate. In JavaScript, the character set used is Unicode, a universal character encoding standard. Unicode includes characters from almost all written languages, symbols, and even emojis, making it ideal for global applications.
2. Unicode in JavaScript
JavaScript uses Unicode to represent characters. Unicode is an extensive set of characters and symbols, each assigned a unique code point. A code point is a unique number that identifies a character in the Unicode standard.
Examples of Unicode Characters:
console.log("A"); // Latin capital letter A, Unicode U+0041
console.log("\u0041"); // Unicode escape sequence for 'A'
console.log("??"); // Chinese characters, Unicode U+4F60 and U+597D
console.log("\u4F60\u597D"); // Unicode escape sequences for '?' and '?'
console.log("????"); // Emoji, Unicode U+1F60A
console.log("\uD83D\uDE0A"); // Unicode escape sequence for '????'
In the above examples:
The character "A" has the Unicode code point U+0041.
The Chinese greeting "??" consists of the characters with code points U+4F60 and U+597D.
The emoji "????" has the code point U+1F60A, which is represented using surrogate pairs in JavaScript.
3. Escape Sequences
Escape sequences are used in JavaScript to represent characters that are not easily typed or have special meaning. They are typically used with a backslash (\) followed by the character or its hexadecimal Unicode code point.
Common Escape Sequences:
- \n - Newline
- \t - Horizontal tab
- \' - Single quote
- \" - Double quote
- \\ - Backslash
- \uXXXX - Unicode character with hexadecimal code XXXX
Examples:
- console.log("Line1\nLine2"); // Newline escape sequence
- console.log("Column1\tColumn2"); // Tab escape sequence
- console.log("She said, \"Hello!\""); // Double quote escape sequence
- console.log('It\'s a beautiful day!'); // Single quote escape sequence
- console.log("Backslash: \\"); // Backslash escape sequence
- console.log("Unicode: \u00A9"); // Unicode escape sequence for ©
4. Special Characters
Special characters in JavaScript include punctuation marks, symbols, and control characters. They are often used in string manipulation, regular expressions, and other programming constructs.
Examples of Special Characters:
- let specialChars = "!@#$%^&*()_+-=[]{}|;:',.<>/?`~";
- console.log(specialChars);
- These characters are essential for various operations, such as defining object literals, arrays, function parameters, and control flow statements.
5. Whitespace Characters
Whitespace characters are invisible characters used for formatting and readability in code. JavaScript recognizes several whitespace characters, including:
- (space)
- \t (tab)
- \n (newline)
- \r (carriage return)
- \v (vertical tab)
- \f (form feed)
Whitespace characters can be used to separate tokens in the code, such as keywords, operators, and identifiers.
Examples:
let name = "John Doe"; // Space
let greeting = "Hello,\nWorld!"; // Newline
let indentedText = "This is\ttabbed."; // Tab
console.log(name);
console.log(greeting);
console.log(indentedText);
6. Examples
Example 1: Unicode and Escape Sequences
// Displaying Unicode characters and escape sequences
let smiley = "\u263A"; // Unicode for ?
let heart = "\u2665"; // Unicode for ♥
let euro = "\u20AC"; // Unicode for €
console.log("Smiley face: " + smiley);
console.log("Heart: " + heart);
console.log("Euro symbol: " + euro);
// Using escape sequences
let multilineString = "This is line one.\nThis is line two.\nThis is line three.";
console.log(multilineString);
let quotedString = "She said, \"JavaScript is fun!\"";
console.log(quotedString);
Example 2: Working with Special Characters
// Using special characters in strings
let jsonExample = "{ \"name\": \"Alice\", \"age\": 25 }";
console.log("JSON Example: " + jsonExample);
let regexPattern = "Find all digits: \\d+";
console.log("Regex Pattern: " + regexPattern);
// Including backslashes
let filePath = "C:\\Users\\Alice\\Documents";
console.log("File Path: " + filePath);
Example 3: Whitespace Usage
// Demonstrating different whitespace characters
let text = "This is a text with different whitespace characters.";
let spacedText = "Text with space.";
let tabbedText = "Text with\ttab.";
let newlineText = "Text with\nnewline.";
console.log(text);
console.log(spacedText);
console.log(tabbedText);
console.log(newlineText);
// Combining whitespace characters
let combinedWhitespace = "Line1\n\tIndented Line2\n\t\tDouble Indented Line3";
console.log(combinedWhitespace);
Understanding the JavaScript character set and how to use Unicode, escape sequences, special characters, and whitespace characters is crucial for writing clear, readable, and maintainable code. This knowledge allows you to handle text and strings more effectively, ensuring your applications are robust and user-friendly.
Practice Excercise Practice now
Products
Partner
Copyright © RVR Innovations LLP 2024 | All rights reserved - Mytat.co is the venture of RVR Innovations LLP