详解JavaScript 中 slice、substr、subtring方法
slice()方法
slice()方法参数是负数时,会将该负数与字符串长度相加作为最终参数。(不论是第一个还是第二个)
var string = 'hello world';
console.log(string.slice(-1)); //d
字符串长度为11,11-1=10,string.slice(10)为d
var string = 'hello world';
console.log(string.slice(-1, -1)); //''
string.slice(-1,-1)相当于string.slice(10,10),当两个值相等或前参数大于后参数时,输出’’,空字符串。
substr()方法
substr()方法,第一个参数为负数时,将该负数和字符串长度相加的值作为最终参数;第二个参数为负数时,直接转化为0.(第二个参数是要返回的字符个数)
var string = 'hello world';
console.log(string.substr(-1));//d
string.substr(-1)相当于string.substr(10)
var string = 'hello world';
console.log(string.substr(-1, -1)); //''
string.substr(-1,-1)相当于string.substr(10,0),取出0个字符,输出’’,空字符串。
var string = 'hello world';
console.log(string.substr(2, -1)); //''
string.substr(2, -1)相当于string.substr(2, 0),返回空字符串
var string = 'hello world';
console.log(string.substr(2, 1)); //l
string.substr()的第二个值是要返回的字符串个数
subtring()方法
var string = 'hello world';
console.log(string.substring(-1)); //hello world
var string = 'hello world';
console.log(string.substring(0)); //hello world
subtring()方法,当传入一个参数时,负数当作0,为0 时输出全部字符串。
var string = 'hello world';
console.log(string.substring(-1, -1)); //''
subtring(-1,-1)相当于subtring(0,0),两个参数相等时输出为空字符串
var string = 'hello world';
console.log(string.substring(1, -2)); //h
substring()最独特的地方
当第二个参数小于第一个参数时,会将两个参数调换位置,再执行。
substring(1, -2)相当于substring(1, 0),即substring(0, 1),所以输出h