js包装器函数--String

// js将其包装成了String类型 特殊引用类型  str调用方法的时候 js做了哪些事情
/**
 * 基本数据类型(string number boolean)在调用方法或者访问属性
 * 1.自动装箱 将基本数据类型包装器特殊引用类型 string 	String()
 * 2.直接访问方法或者属性 str.split("")
 * 3.自动拆箱 将特殊引用数据类型转换为基本数据类型  valueOf()  toString()
 */
var str = new String('hello');
console.log(str.length); //5
console.log(str.substring(2)); //llo
console.log(typeof str); //object
str = 'hello';
console.log(typeof str); //string
/**
 * 给基本数据类型添加方法或者属性 str.last() 		String() 包装器函数
 */
var str = 'hi';
var str1 = 'hello';
String.prototype.last = function() {
    console.log('我是last方法')
}
str.last();
str1.last();
console.log(str);
// 
String.prototype.mysplit = function(str) {
    // 转换成数组
    return Array.from(str)
}

let res = str.mysplit(str)
console.log(res, str);
/**
 * str直接调用方法 数据类型变成String类型
 */
var str = new String('hello');
str.name = 'zhangsan';
str.sayName = function() {
    console.log(this.name)
};
str.sayName();
console.log(str, typeof str, typeof(str.valueOf()), str.valueOf());

总结

let str = 'hello' //string
console.log(str.length); //基本数据类型,没有length方法 ->为什么可以输出5 而不报错呢?
/**
 * 第一步:自动装箱->通过new创造实例对象new String(str) (把string基本数据类型参数转换成引用数据类型(object 中的子类型String))
 * 第二部:调用调用String中的length方法
 * 第三步: 自动拆箱->变为基本数据类型string
 */
console.log(typeof str); //string

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值