在传递负值参数情况下 , slice() 方法是通过字符串长度相加 , 符合一般思维 , substring()第二个参数转换为0会容易出问题 , 起始位置会容易变更 , substr() 方法负值情况下会出现IE兼容性问题 。
综上 , 小弟一般推荐使用slice()方法 。
下面给大家介绍slice,substr和substring的区别
首先 , 他们都接收两个参数 , slice和substring接收的是起始位置和结束位置(不包括结束位置) , 而substr接收的则是起始位置和所要返回的字符串长度 。直接看下面例子:
var test = ’hello world’;alert(test.slice(,));//o walert(test.substring(,));//o walert(test.substr(,));//o world 这里有个需要注意的地方就是:substring是以两个参数中较小一个作为起始位置 , 较大的参数作为结束位置 。
如:
alert(test.substring(7,4));//o w 接着 , 当接收的参数是负数时 , slice会将它字符串的长度与对应的负数相加 , 结果作为参数;substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;substring则干脆将负参数都直接转换为0 。测试代码如下:
var test = ’hello world’;alert(test.slice(-));//rldalert(test.substring(-));//hello worldalert(test.substr(-));//rldalert(test.slice(,-));//lo walert(test.substring(,-)); //helalert(test.substr(,-));//空字符串 注意:IE对substr接收负值的处理有错 , 它会返回原始字符串 。
您可能感兴趣的文章:JavaScript中解决多浏览器兼容性23个问题的快速解决方法常用原生JS兼容性写法汇总JavaScript 浏览器兼容性总结及常用浏览器兼容性分析JS实现兼容性较好的随屏滚动效果JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果javascript中setAttribute()函数使用方法及兼容性css与javascript跨浏览器兼容性总结js日期对象兼容性的处理方法Javascript 多浏览器兼容性问题及解决方案JavaScript的兼容性与调试技巧
推荐阅读
- onclick IE8的JavaScript点击事件不兼容的解决方法
- Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
- JavaScript之IE的fireEvent方法详细解析
- 用javascript判断IE版本号简单实用且向后兼容
- frameset的cols属性 浅析IE10兼容性问题
- JavaScript中一个奇葩的IE浏览器判断方法
- 深入理解指定IE浏览器渲染方式
- JavaScript在IE和FF下的兼容性问题
- qq浏览器提示需要开启JavaScript权限怎么办
- IE浏览器中怎么调试JavaScript程序?
