Skip to content

Instantly share code, notes, and snippets.

@Crystal-RainSlide
Last active May 22, 2022 02:51
Show Gist options
  • Save Crystal-RainSlide/6e4bfa89a97d9b8f5f3d53884cbd2f2c to your computer and use it in GitHub Desktop.
Save Crystal-RainSlide/6e4bfa89a97d9b8f5f3d53884cbd2f2c to your computer and use it in GitHub Desktop.
String.prototype: slice() , substring() and substr() testcase
const str = "part1part2part3";
const argList = [
[], [0], [5], [-5],
[0, 0], [5, 5], [-5, -5],
[0, 5], [5, 7], [0, -5], [5, -5],
[5, 0], [7, 5], [-5, 0], [-5, 5],
["Boom"]
];
const results = argList.map(
args => ({
args,
slice : str.slice( ...args ),
substring : str.substring( ...args ),
substr : str.substr( ...args )
})
);
console.log(results);
@Crystal-RainSlide
Copy link
Author

Crystal-RainSlide commented Feb 10, 2020

Argumentsslice()substring()substr()Result
  "part1part2part3" "part1part2part3" "part1part2part3" same
0 "part1part2part3" "part1part2part3" "part1part2part3" same
5 "part2part3" "part2part3" "part2part3" same
-5 "part3" "part1part2part3" "part3" substring() different
0, 0 "" "" "" same
5, 5 "" "" "part2" substr() different
-5, -5 "" "" "" same
0, 5 "part1" "part1" "part1" same
5, 7 "pa" "pa" "part2pa" substr() different
0, -5 "part1part2" "" "" slice() different
5, -5 "part2" "part1" "" ALL different
5, 0 "" "part1" "" substring() different
7, 5 "" "pa" "rt2pa" ALL different
-5, 0 "" "" "" same
-5, 5 "" "part1" "part3" ALL different
"Boom" "part1part2part3" "part1part2part3" "part1part2part3" same

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment