Upgrading ES5 to ES6 Syntax

Demonstrate the process of updating an ES5 codebase to ES6, including converting var to let/const, arrow functions, and template literals.
// ES5: Declaration of variables with 'var'
var name = 'John Doe';
var age = 30;

// ES6: Using 'let' for variables that can change
let name = 'John Doe';
// ES6: Using 'const' for variables that should not change
const age = 30;
Replaces 'var' with 'let' or 'const' to indicate variable mutability and to benefit from block scoping.
// ES5: Function expression
var greet = function(name) {
    return 'Hello ' + name;

// ES6: Arrow function
const greet = (name) => {
    return `Hello ${name}`;

// ES6: Arrow function with implicit return when only one expression exists
const greet = name => `Hello ${name}`;
Converts anonymous functions to arrow functions and uses template literals for string concatenation.
// ES5: Concatenating strings
var fullName = 'Hello, my name is ' + name + ' and I am ' + age + ' years old.';

// ES6: Template literals for easier readability and better syntax
const fullName = `Hello, my name is ${name} and I am ${age} years old.`;
Uses template literals (backticks) instead of plus operators to concatenate strings and variables, which enhances readability.