字符串不是对象类型,但是表现的像对象一样。
如下例子:
var mStr = "hello world";
var worldS = mStr.substring(mStr.indexOf(" "),mStr.length);
我们可以看出字符串有类似对象的一些属性和方法,问题来了,字符串不是对象,为什么会有对象的属性和方法呢?
因为只要已用了字符串mStr
的属性,JavaScript就会将字符串值通过调用new String(mStr)
的方式转换成对象,这个对象继承了字符串的方法,并被用来处理属性的引用。一点引用结束,这个新传经的对象也被销毁(其实在现实上并不一定是创建或者销毁这个临时对象,但是类似这样的操作)。
<small>再看一个例子:</small>
var mStr = "test";
mStr.mlength = 4;
var mLen = mStr.mlength;
运行代码只有发现mLen
的值是undefined
,是不是有点奇怪,这就说明在读取字符串的时候,表现的像对象一样,但是是无法给其添加属性的,如果你试图给其添加属性值,则会忽略这个操作(添加属性的操作只是发生在这个临时对象身上,而这个临时对象并未继续保留下来)。
数字类型,Boolean类型跟字符串相似。
自己也是刚开始接触JS,有些东西必须刚学习的时候弄清楚