string.charat(X)还是字符串[x]?有什么理由我应该用string.charAt(x)而不是括号符号string[x]?
3 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
// Bracket Notation"Test String1"[6]// charAt Implementation"Test String1".charAt(6)
这种表示法在IE7中不起作用。
第一个代码段将返回IE7中未定义的代码段。如果您碰巧对代码中的字符串使用括号表示法,并且希望迁移到 .charAt(pos)
这是一个真正的痛苦:括号在您的代码中全部使用,并且没有一种简单的方法来检测它是用于字符串还是用于数组/对象。 您不能使用此符号设置字符。
由于没有任何警告,这真是令人困惑和沮丧。如果您使用的是 .charAt(pos)
函数,你不会被诱惑去做它。
智慧大石
TA贡献1946条经验 获得超3个赞
有两种方法可以访问字符串中的单个字符。第一个是 charAt
方法,ECMAScript 3的一部分: return 'cat'.charAt(1); // returns "a"
另一种方法是将字符串视为类似数组的对象,其中每个单个字符对应一个数字索引。除了IE之外,大多数浏览器从第一个版本开始就支持这一点。它在ECMAScript 5中标准化: return 'cat'[1]; // returns "a"第二种方法需要ECMAScript 5支持(在一些旧浏览器中不支持)。
在这两种情况下,试图更改单个字符都不能工作,因为字符串是不可变的,也就是说,它们的属性既不是“可写的”,也不是“可配置的”。
str.charAt(i)
从兼容性的角度来看,如果需要IE6/IE7兼容性,则更好。 str[i]
更现代化,适用于IE8+和所有其他浏览器(AllEdge/Firefox/Chrome、Safari 2+、所有iOS/Android)。
添加回答
举报
0/150
提交
取消