JavaScript string类型数据考题

var s = 'test';
s.length = 4;
var t = s.length ;
console.log(t);

输出undefined

解释:
s不是对象,所以没有length这个属性,但是它能使用length属性是因为这相当于使用了一个临时String对象,即new String(s).length,所以改变s.length是改变的这个临时对象的length,而这个临时对象在使用后就销毁了,所以没有起到什么作用,相当于下列代码:

var tmp = new String(s);
tmp.length=4;//修改tmp的length属性不影响s本身
delete tmp;

猜你喜欢

转载自blog.csdn.net/Wind_waving/article/details/106810365