Open In App

JavaScript ES5 (JS 2009)

Last Updated : 25 Oct, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

JavaScript 2009 (ES5) refers to the fifth edition of the ECMAScript language specification, standardized in 2009. It introduced several features, like strict mode, new methods, JSON support, and improved syntax for better programming practices and compatibility across browsers.

ECMAScript 5 (ES5) introduced several significant features to JavaScript, enhancing the language’s capabilities.

Name

Description

use strict

Enforces stricter parsing and error handling in JavaScript code.

String.trim()

Removes whitespace from the beginning and end.

Multiline strings

Use backslashes at the end of each line to continue.

Array.isArray()

Check if an object is an array.

Array.forEach()

Iterates over array elements, applying a provided function.

Array.map()

Transforms each array element using a provided function.

Array.filter()

Creates a new array with elements passing a test.

Array.reduce()

Combines an array of elements to produce a single result.

Array.reduceRight()

Combines array elements from right to left.

Array.every()

Checks if all elements satisfy a given condition.

Array.some()

Checks if any element satisfies a given condition.

Array.indexOf()

Returns the index of a specified element.

Array.lastIndexOf()

Returns the last index of a specified element.

JSON.parse()

Converts JSON string to JavaScript object.

JSON.stringify()

Converts JavaScript object to JSON formatted string.

Date.now()

Returns the current timestamp in milliseconds since 1970.

Date toISOString()

Converts date to ISO 8601 format string.

Date toJSON()

Converts date to JSON-formatted string (ISO 8601).

Property Getters and Setters

Control object property access and modification behavior.

Object.defineProperty()

Defines or modifies a property’s attributes on an object.

Object.defineProperties()

Defines or modifies multiple properties’ attributes on an object.

Object.getOwnPropertyDescriptor()

Gets attributes of a property from an object.

Object.keys()

Returns an array of enumerable property names in object.

Object.getOwnPropertyNames()

Returns an array of all property names in object.

Object.preventExtensions()

Prevents adding new properties to an object.

Object.isExtensible()

Checks if new properties can be added.

Object.seal()

Prevents new properties and makes existing non-configurable.

Object.isSealed()

Checks if object properties are non-configurable and sealed.

Object.freeze()

Prevents adding, modifying, and makes properties non-writable.

Object.isFrozen()

Checks if object properties are non-writable, non-configurable, and frozen.

Here is the explanation of above-mentioned topic

Method 1: use strict

The use strict enforces strict mode in JavaScript, catching errors and promoting better coding practices. It’s used at the beginning of scripts or functions.

Syntax:

// Whole-script strict mode syntax
'use strict';
let v = "strict mode script!";

Example: In this example we are using the above-explained method.

Javascript




"use strict";
function strictFunction(a, b) {
    // Throws an error in strict mode 
    //due to the undeclared variable "result"
    result = a + b;
    return result;
}
  
let sum = strictFunction(5, 10);
console.log("Sum of the given numbers :", sum);


Output:

ReferenceError: result is not defined

Method 2: String.trim() Method

JavaScript String trim() method is used to remove the white spaces from both ends of the given string.

Syntax:

str.trim()

Example: In this example we are using the above-explained method.

Javascript




function func() {
    let str = "GeeksforGeeks     ";
    let st = str.trim();
    console.log(st);
}
  
func();


Output

GeeksforGeeks

Method 3: Multiline Strings

In ES5, multiline strings can be created using backslashes at the end of each line to continue, combined with + for concatenation, to form a single string across lines.

Syntax:

line one\n\
line two\n\

Example: In this example we are using backslashes and + to write Multiline strings.

Javascript




let str1 = "GeeksforGeeks \
A computer science \
Portal.";
  
console.log(str1);
  
let str2 = "Geeksfor" +
    "Geeks"
  
console.log(str2);


Output

GeeksforGeeks A computer science Portal.
GeeksforGeeks

Method 4: Array Methods (Array.isArray(), Array.map(), Array.filter(), and Array.reduce() Methods)

  • The Array.isArray() method checks if a value is an array or not and returns true or false.
  • The Array.map() method transforms each element in an array using a provided function, returning a new array.
  • Array.filter() method creates a new array with elements that satisfy a condition set by a function.
  • The Array.reduce() method reduces array to a single value by executing a function with accumulator.

Syntax:

Array.isArray(obj) 
map((element) => { /* … */ })
array.filter(callback(element, index, arr), thisValue)
array.reduce( function(total, currentValue, currentIndex, arr), initialValue )

Example: In this example we are using the above-explained methods.

Javascript




// Step 1: Array.isArray()
let numbers = [1, 2, 3, 4, 5];
let isNumbersArray = Array.isArray(numbers);
console.log("Is 'numbers' an array?", isNumbersArray);
  
// Using Array.map()
let doubledNumbers = numbers.map(function (number) {
    return number * 2;
});
console.log("doubling each elemen of our array :", doubledNumbers);
  
// Using Array.filter()
let evenNumbers = numbers.filter(function (number) {
    return number % 2 === 0;
});
console.log("Even numbers from the array:", evenNumbers);
  
// Using Array.reduce()
let sum = numbers.reduce(function (accumulator, currentValue) {
    return accumulator + currentValue;
}, 0);
console.log("Sum of all elements in the array:", sum);


Output

Is 'numbers' an array? true
doubling each elemen of our array : [ 2, 4, 6, 8, 10 ]
Even numbers from the array: [ 2, 4 ]
Sum of all elements in the array: 15

Method 5: JSON.parse() Method

The JSON.parse() method is a JavaScript method that converts a JSON string into a JavaScript object.

Syntax:

JSON.parse( string, function )

Example: Here is the basic example of JSON.parse() method.

Javascript




let str1 = '{"name": "Aman", "age": 21, "city": "Noida"}';
  
let result = JSON.parse(str1);
  
console.log(result.name);
console.log(result.age);
console.log(result.city);


Output

Aman
21
Noida

Method 6: JSON.stringify() Method

JSON.stringify() is a JavaScript method that converts a JavaScript object into a JSON string for data serialization and storage.

Syntax:

JSON.stringify(value, replacer, space);

Example: In this example we are using JSON.stringify().

Javascript




const value = {
    Company: "GeeksforGeeks",
    Estd: 2009,
    location: "Noida"
};
const result = JSON.stringify(value);
console.log("value of result = " + result);


Output

value of result = {"Company":"GeeksforGeeks","Estd":2009,"location":"Noida"}

Date Methods (Date.now(),Date toISOString() and Date toJSON() Methods)

  • Date.naw() method used to return the number of milliseconds elapsed since January 1, 1970, 00:00:00 UTC.
  • Date toISOString() converts a date to an ISO 8601 format string (e.g., “YYYY-MM-DDTHH:mm:ss.sssZ”).
  • Date toJSON() method converts the given date object’s contents into a string.

Syntax:

let A = Date.now();  // Date.now()
dateObj.toISOString() // Date toISOString()
dateObj.toJSON() // Date toJSON()

Example: In this example we are using the abobe-explained methods.

Javascript




// Using new Date
let currentDate = new Date();
  
// Using Date.now() 
let timestamp = Date.now();
console.log("Timestamp:", timestamp);
  
// Using Date.toISOString() 
let isoString = currentDate.toISOString();
console.log("ISO String:", isoString);
  
// Using Date.toJSON() 
let jsonDate = currentDate.toJSON();
console.log("JSON Date:", jsonDate);


Output

Timestamp: 1698213643835
ISO String: 2023-10-25T06:00:43.835Z
JSON Date: 2023-10-25T06:00:43.835Z

Method 7: Property Getters and Setters

In ECMAScript 5 (ES5), property getters and setters enable defining custom behavior when reading (get) or modifying (set) object properties, enhancing encapsulation and control over property access.

Example: In this example we are using the above-explained approach.

Javascript




const person = {
    firstName: "John",
    lastName: "Doe",
    get fullName() {
        return `${this.firstName} ${this.lastName}`;
    },
    set fullName(name) {
        const parts = name.split(" ");
        this.firstName = parts[0];
        this.lastName = parts[1];
    },
};
  
console.log(person.fullName);
  
person.fullName = "Jane Smith";
console.log(person.firstName);
console.log(person.lastName);


Output

John Doe
Jane
Smith

Method 8: New Object Property Methods

ECMAScript 5 introduced new object methods

It enhance the object property control, definition, and manipulation.

Syntax:

Object.defineProperty(obj, prop, descriptor)   // Object.defineProperty()
Object.defineProperties(obj, props) // Object.defineProperties()
Object.getOwnPropertyDescriptor( obj, prop ) // Object.getOwnPropertyDescriptor()
Object.keys(obj); // Object keys() Method

Example: In this example we are some mentioned method.

Javascript




// Define an empty object
let person = {};
  
// Define properties using Object.defineProperty()
Object.defineProperty(person, 'name', {
    value: 'Ankit',
    writable: false,
    enumerable: true,
    configurable: false
});
  
// Define multiple properties using 
// Object.defineProperties() method
Object.defineProperties(person, {
    age: {
        value: 21,
        writable: true,
        enumerable: true,
        configurable: true
    },
    gender: {
        value: 'Male',
        writable: true,
        enumerable: true,
        configurable: true
    }
});
  
// Get enumerable property names using 
// Object.keys() method
let propertyNames = Object.keys(person);
console.log('Property Names:', propertyNames);
  
// Get all property names using 
// Object.getOwnPropertyNames() method
let allPropertyNames = Object.getOwnPropertyNames(person);
console.log('All Property Names:', allPropertyNames);
  
// Prevent adding new properties using 
// Object.preventExtensions() method
Object.preventExtensions(person);
console.log('Is Extensible:', Object.isExtensible(person));
  
// Seal the object using Object.seal()
Object.seal(person);
console.log('Is Sealed:', Object.isSealed(person));
  
// Attempt to add a new property after sealing 
// (fails due to Object.seal())
person.city = 'Delhi';
  
// Freeze the object using Object.freeze()
Object.freeze(person);
console.log('Is Frozen:', Object.isFrozen(person));
  
// Try to modify properties after freezing (all fail)
person.name = 'Nikita'; // Fails due to 'writable: false'
person.age = 35; // Fails due to Object.freeze()
person.gender = 'Female'; // Fails due to Object.freeze()
  
console.log(person);


Output

Property Names: [ 'name', 'age', 'gender' ]
All Property Names: [ 'name', 'age', 'gender' ]
Is Extensible: false
Is Sealed: true
Is Frozen: true
{ name: 'Ankit', age: 21, gender: 'Male' }


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads