传入参数的时候
// 首先定义一个字符串
var str1 = 'Hello World!'
console.log(str1.slice(4)) // o World!
console.log(str1.substr(4)) // o World!
console.log(str1.substring(4)) // o World!
//第一个参数是起始位置 第二个是结束位置 顾头不顾尾
onsole.log(str1.slice(2, 4)) // 'll'
console.log(str1.substring(2, 4)) // 'll'
//第二个参数是返回的字符数
console.log(str1.substr(2, 4)) // 'llo Wo'
// 如果第一个参数为负数,则以该参数与字符串的长度的和为起始下标,截取第二个参数长度,直到截取超过长度范围
console.log(str1.substr(-4, 3)) // 相当于 str1.substr(8,3) 即为 'rld'
console.log(str1.substr(-3, 5)) // 相当于str1.substr(9, 5) 即为 'ld!'
// 在传入的参数为负数的时候,substring 会把负数参数换算成 0,如:
console.log(str1.substring(-3)) // 相当于 str1.substring(0) 即为 'Hello World!'
// 如果是两个参数中有一个为负数的话,则会将该负数参数换算成 0,并把该参数作为起始位置,另一个非负参数,作为终止位置,比如:
console.log(str1.substring(-4, 5)) // 相当于 str1.substring(0, 5) 即为 'Hello'
console.log(str1.substring(5, -6)) // 相当于 str1.substring(0, 5) 即为 'Hello'
注意,如果这个参数如果大于过等于字符串的长度,则返回值为空字符串
console.log(str1.slice(12)) // ""
console.log(str1.substr(12)) // ""
console.log(str1.substring(12)) // ""
注意,如果这个参数如果大于过等于字符串的长度,则返回值为空字符串
console.log(str1.slice(12)) // ""
console.log(str1.substr(12)) // ""
console.log(str1.substring(12)) // ""