说说javascript字符截取的三种方法String.prototype.substrString.prototype.substringString.prototype.slice通常会用到这三种方法,但是有时候不知道哪个更好。今天就让我们一起来看看它们的异同吧。这3个方法都接受2个可选参数。情况一:没有传递参数varstring="hello";string.substr();>hellostring.substring();>hellostring.slice();>hello从上面的代码来看,如果没有传递参数3就没有两种方法的区别。当然,在工作中不可能使用这种方式。这就是为什么要测试他们的行为。第二种情况:都传一个参数0varstring="hello";string.substr(0);>hellostring.substring(0);>hellostring.slice(0);>hello输出和第一种情况一样,让我们试试第三种情况,传2。第三种情况:都传一个参数2varstring="hello";string。substr(2);>llostring.substring(2);>llostring.slice(2);>llo3方法输出还是一样,现在我们知道第一个参数的作用是表示开始的位数(包括Currentlocation),以上三种情况的输出逻辑是一样的,为什么要有行为一致的三种方法呢?别着急,上面说了,也可以传第二个参数,我们来试试第四种情况:传两个参数varstring="hello";string.substr(2,1);>lstring.substring(2,1);>estring.slice(2,1);>''开始产生差异。上面的例子中,substr和sbusstring都有输出,只有slice有输出string。由此我们知道了第二个参数的作用。substr的第二个参数表示个数,另外两个仍然表示位置。Substring交换两个参数并返回“e”。切片的终点比起点小,所有输出为空。上例中的参数都是自然数。让我们试试负数会发生什么。情况5:第一个参数为负数varstring="hello";string.substr(-1);>ostring.substring(-1);>hellostring.slice(2,-1);>o差异较大这一次,为什么substr和slice返回最后一个字母?根据<
