difference between javascript substr & substring code example

Example 1: javascript substr vs substring

let demo = 'This is a normal sentence';

// substr 
// The substr method takes two parameters
// param 1 - the starting index to copy from a string
// param 2 - the number of characters that must be copied from the starting index

let newDemo = demo.substr(3, 5);
// newDemo would be 's is ' 

// substring
// The substring method takes 1 mandatory and 1 optional parameter
// param 1 - the starting index to copy from a string
// param 2 - (optional) the ending index that will be copied until from the starting index. 
		// - it will not include the ending index position
		// - if this param is left blank. it defualts to the rest of the string

let newDemo = demo.substring(0, 3);
// newDemo would be 'Thi'

let newDemo = demo.substring(3);
// newDemo would be 's is a normal sentence'

Example 2: javascript substring vs substr

var string = "This is a string";
var a = string.substring(2, 5); //Start at index 2 and end at index 5
console.log(a); //output "is "
var b = string.substr(2, 5); //Start at index 2 and stop after 5 characters
console.log(b); //output "is is"