js基本包装类型

js基本类型 Undefined,Null,String,Number,Boolean
js基本包装类型 String,Number,Boolean

基本类型不是对象,没有属性和方法。但是有三个很特殊的基本类型,String,Number,Boolean,他们有自己的包装对象。包装对象就是对象,有自己的属性和方法,只是包装对象是在后台调用的

var s1 = "some text";
var s2 = s1.substring(2);    //提取子字符串,起始位置2,最终位置是母字符串的末尾
/*    这是在后台发生的
var _s1 = new String("some text");    找到对应的包装对象类型,然后通过包装对象创建出一个和基本类型值相同的对象
var s2 = _s1.substring(2);    这个对象就可调用包装对象下的方法,并赋值给s2
_s1 = null;    销毁这个包装对象
*/
console.log(s2);    //me text

注释里面的过程都是在后台发生的,就是当3种基本类型(String,Number,Boolean)调用方法时,会在找到他们对应的基本包装对象类型,再调用该包装类型的方法并赋值给该赋值的变量,最后销毁该包装对象

所以基本包装类型在被调用一瞬间就被销毁了,而引用类型在执行流离开当前作用域之前一直保存在内存中,对象的生存期不同

所以我们也无法直接给基本类型添加属性,方法,只能运用基本类型对应基本包装类型下原有的方法

var s1 = "some text";
s1.color = "red";
/*
var _s1 = new String("some text");    //找到对应的包装对象类型,然后通过包装对象创建出一个和基本类型值相同的对象
_s1.color = "red";    //通过这个对象调用包装对象下的方法,其实并没有这个方法
_s1 = null;    //包装对象被销毁
*/
console.log(s1.color);    //undefined
 /*
又有s1.color,所以重复以上操作,但是对应的包装对象下没有该方法,所以其值是undefined
*/

给基本类型添加方法要用到prototype属性,还没有学

大佬文章有感

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值