在js中字符串不是对象,它是不可被修改的,就像在使用toUpperCase方法之后不会改变原来的字符串的值,而是新创建了一个字符串。
既然字符串不是对象,那么它为什么会有属性呢
var s = "hello";
var word = s.substring(0,s.length);
这是因为在引用字符串属性的时候,js就会通过调用 new String(s)将其转换成对象,这个对象继承了字符串的方法。
var s = "hello";
s.len = 4;
var x = s.len //undefined
字符串对象的len属性在被赋值之后会马上被销毁,所以在进行赋值给x时已经没有这个对象了,所以是undefined