基本类型当中,有三个类型是我们经常使用的类型:boolean,number,string。按照常理说基本类型是不应该有方法的,方法不是object类型应有的么,但是ECMAScript提供了三个引用类型:Boolean,Number,String。并为这三个应用类型提供了属性与方法。
var str1="hello!";
var s=str1.substring(2);
alert(s);
第一行,我按照平常的习惯,为str1
赋予了一个字符串值。
第二行,我却拿基本类型的变量来访问一个方法。
【解释】访问过程处于一种读取模式,也就是要从内存中读取这个字符串的值,而在读取模式中访问字符串时,
后台会:1、创建string类型的一个实例:var str1=new string('hello!');
2、在实例上调用指定的方法:var s=str1.substring(2);
3、销毁这个实例:str1=null
;
记住销毁的只是实例,而不是之前的基本类型值。所以每次调用方法时,都会这样一番。
还有要注意的是,使用new调用基本包装类型的构造函数,与直接调用同名的转型函数,或直接赋值是不一样的。
var str1="hello!";
alert(typeof str1);//string
var str2=new String('hell');
alert(typeof str2);//object
网友评论