js字符串可以用[]访问单个字符,为什么还要有charAt()?
这两者在性能上会有什么区别?一般提倡用哪种,有场景区分吗?
js字符串可以用[]访问单个字符,为什么还要有charAt()?
这两者在性能上会有什么区别?一般提倡用哪种,有场景区分吗?
var s = "abc";
s[1]; // b
s.charAt(1); // b
s[5]; // undefined
s.charAt(5); // ""
所以,可能的原因是,当索引超出范围时,charAt() 返回的结果更合理,更好判断。
8 回答4.7k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
这两种方式都可以获取到字符串对应位置的字符,获取的位置是从0开始。
下面说下区别:
第一个区别前面的都有提及,就是
使用string[index]的方式,对于超出字符index范围的,会返回undefined
而使用charAt(index)的方式,对于超出范围的会返回一个空的字符串。
第二个区别,是兼容性问题
string[index]的方式在IE6~8下会返回 undefined, 也就是IE6~8 不兼容此方法。
而charAt(index)经测试,在IE6~8下也能够正常返回值。
所以如果你不需要考虑IE6~8的话,就可以随便用了,至于性能,都是JavaScript的方法,差别微乎其微。
如果你还是苦逼的要考虑IE6~8的话,劝你还是老老实实的使用charAt吧,安全又放心,不就是多了几个字符吗?