JavaScript字符串不是对象,为什么会有属性呢?

实例1:
var s = “hello javascript!”; //定义一个字符串
var world = s.substring(s.indexOf(” “)+1, s.length); //使用字符串的属性
实例2:
var s=”“test”; //创建一个字符串
s.len=4; //给字符串设置一个属性
var t=s.len; //查询这个属性
结果:
在实例1中,可以正常使用s的属性length,在实例2中t的值为undefined
结论:字符串s是一个原始值,在实例1中,只要引用了字符串s的属性,JS就会将字符串的值通过调用new String(s)的方法转换成对象;实例2中,第二行代码创建的是一个临时字符串对象,并给len属性赋值为4,随即销毁这个对象,所以第三行t的值是未定义。
以上的这个“临时对象”被称为“包装对象”,可以通过String(),Number(),Boolean()构造函数来显示地创建包装对象。另外,“==”运算符将原始值和其包装对象视为相等,“===”全等运算符则视为不等。

猜你喜欢

转载自blog.csdn.net/it_10/article/details/80913947