Opera 9.51 string bug

发布日期 : 2008-08-19

查看评论 [1]

String对象的length属性是 不可改变的

当你创建一个String对象后,

var str = new String('this is a string');

如果你试图修改str的length属性来截取str,那将是徒劳。

str.length = 4;
alert(str); 	       // 'this is a string'
alert(str.length);	// 原str长度

Opera 9.51 的第一个语句如上正常显示,但第二个alert语句那里显示4。Opera 9.24 版本没有该bug,所以可以推断是新版本的一个新bug。

在实际使用中,不要把String对象和Array对象搞混,虽然他们有很多generic method可以混合使用,但是length属性上,两者还是有差别的。

类别标签 :

读者评论

订阅本文评论

  • 1. hax 发表于2008-08-20

    Array.length和String.length有什么差别呢?现在倾向于将String视作char array,所以都支持“1234”[2](返回‘3‘)了。如果说差别在于array.length可用于截断array,偶认为这其实是一个不好的用法,array.length其实也应该是只读的才对,呵呵。

本文发表6星期以后评论已自动禁止