使用这种直接引用下标的方法mystr[mystr.length-1]和使用这种charAt()方法有什么区别? 这两种方法是不是在任何时候都完全等价?
关于 mystr[index]与mystr.charAt(index)的区别:
① 当索引值超出字符串的有效位置值时,前者的运行结果为undefined,后者的运行结果为空值,即为null,下面的代码你可以复制运行试试看效果;
var mystr="I love JavaScript!";
document.write("前"+mystr[18]+"后<br />");
document.write("前"+mystr.charAt(18)+"后<br />");
② 当mystr为数组时,前者的 [ ] 变为数组下标,后者无法运行;
var mystr=["I love JavaScript!"];
document.write("前"+mystr[18]+"后<br />");
document.write("前"+mystr.charAt(18)+"后<br />");
③ 当mystr为数组时,前者的有效索引值表示为mystr[0][5],相当于二维数组,后者的有效索引值表示为mystr[0].charAt(5)。
var mystr=["I love JavaScript!"];
document.write("前"+mystr[0][5]+"后<br />");
document.write("前"+mystr[0].charAt(5)+"后<br />");
(以上均为本人亲测,如果有哪里说得不对的地方,可以一起讨论一下)