包装类

 1、包装类

引用值跟原始的区别:

引用值可以有属性跟方法

原始值不能有属性跟方法

var str = 'abc';

str.length; str的length为3.

那么这个原始值类型的str为什么有属性length呢。

这就是因为包装类

str.length;事实上是隐性的执行了new String('abc').length这一句语法

// 包装类

// 简单的num 跟 string类型是无法添加属性的
var num =123;//

num.len = 3;//系统会隐性new Number(123).len = 3; 创建完后会立刻delete

console.log(num.len);//重新打印的时候,会再次new Number(num.len) 这时len为undefined


var arr = [1,2,3,4];//数组是有属性length的
arr.length = 2;//用length来截取arr长度
console.log(arr);//[1,2]


var str = 'abcd';//简单字符串没有length属性
str.length = 2; //系统会隐性new String(str).length=2; 然后delete。
				// 删除的是隐性创建的,跟原有的str无关
console.log(str);//打印原来的str 'abcd'				
console.log(str.length);//str本身无length,系统会new String('abcd').length,打印出4				

var str = 'abc';
str+=1;
var test = typeof(str);
if (test.length==6) {
	test.sign = 'typeof返回结果为string';
}
console.log(test.sign);

// 答案:打印出undefined
// 解析:
// str+=1; str = 'abc1',为string类型。
// test='string';  test.length系统自动new String获取到length为6
// test.sign=''; 由于test为string类型,没有属性。系统new String().sign了之后立刻删除
// 再次打印test.sign时 系统new String(test).sign  此时的sign没有赋值,为undefined

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值