javascript - js字符串可以用[]访问单个字符,为什么还要有charAt()?
伊谢尔伦
伊谢尔伦 2017-04-10 14:37:44
0
4
674

js字符串可以用[]访问单个字符,为什么还要有charAt()?
这两者在性能上会有什么区别?一般提倡用哪种,有场景区分吗?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(4)
巴扎黑

这两种方式都可以获取到字符串对应位置的字符,获取的位置是从0开始。
下面说下区别:

  1. 第一个区别前面的都有提及,就是
    使用string[index]的方式,对于超出字符index范围的,会返回undefined
    而使用charAt(index)的方式,对于超出范围的会返回一个空的字符串。

  2. 第二个区别,是兼容性问题
    string[index]的方式在IE6~8下会返回 undefined, 也就是IE6~8 不兼容此方法
    而charAt(index)经测试,在IE6~8下也能够正常返回值。

所以如果你不需要考虑IE6~8的话,就可以随便用了,至于性能,都是JavaScript的方法,差别微乎其微。
如果你还是苦逼的要考虑IE6~8的话,劝你还是老老实实的使用charAt吧,安全又放心,不就是多了几个字符吗?

黄舟
var s = "abc";
s[1];        // b
s.charAt(1); // b
s[5];        // undefined
s.charAt(5); // ""

所以,可能的原因是,当索引超出范围时,charAt() 返回的结果更合理,更好判断。

大家讲道理
alert("abc"[3]); // undefined
alert("abc".charAt(3)); // return ""
PHPzhong

IE7和IE7以下的浏览器不支持直接用 '[]'这个操作符去获取指定索引上的字符

console.log("abc"[0]) // undefined    
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板