js string substr vs substring vs slice 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 slice

The same except:
* if start > stop substring swaps the arguments, slice returns ""
* if argument is NaN or negative, substring will treat it as a 0
* if start is negative, slice sets char from the end of string
* if stop is negative, slice sets stop to string.lengthMath.abs(stop)