JS中string值类型为什么会有length属性、以及其他字符串方法 -- js包装对象

前言

  • JavaScript数据类型包含两种:基本类型(或原始类型)和引用类型;
  • 基本类型的值是保存在栈内存中的简单数据段,是按值来访问的。有 String、Number、Boolean、Undefined、Null;
  • 引用类型的值是保存在堆内存中的对象,是按引用来访问的。有Object、Function、Array、Date、RegExp等;
  • 对象自身是拥有属性方法的,如下:
var arr = [1, 2, 3];
arr.push(4);   // [1, 2, 3, 4]
arr.length;   // 4
  • 基本类型,如string
var str = 'zlq';
console.log(str.length);  // 3
/*
	问题:string作为基本类型,怎么会拥有 length、substring等属性、方法呢?
	原因:基本类型在调用方法是,JS引擎会先对原始类型数据进行包装 -- 基本包装类型。
*/

基本包装类型

步骤:

  1. 创建基本类型的一个实例;
  2. 在实例上调用指定的方法;
  3. 销毁这个实例;

代码说明:

var str = "我是string基本类型的值";
var new_str = new String("我是string基本类型的值");  // 包装处理
var my_str = new_str.substring(5,8);
new_str = null;   // 方法调用之后销毁实例

var str2 = "zlq";
str2.age = 18;
console.log(str.age);   //undefined
  1. 可见,并非string调用了自身的方法,而是后台创建了一个基本包装类型String,从而进行下一步操作。
  2. 基本类型的“销毁性”致使我们不能为基本类型添加属性和方法。

总结
对于基本类型(string、number、boolean),当我们读取这三种基本类型的值时,后台会创建对应的包装类型的实例,然后调用实例指定的方法,调用完就会被销毁。由于这样短暂的生命周期导致我们不能为基本类型添加自己的属性和方法。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值