码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 包装类

时间:2020-01-10 22:33:16      阅读:437      评论:0      收藏:0      [点我收藏+]

标签:才有   div   一个   分析   引用类型   eof   属性   string   数据类型   

基本数据类型:String,Number,Undefined,Boolean,Null
引用类型:Object,Array,Date,RegExp
只有对象才有属性和方法,原始值不能有属性和方法
为什么平时开发中给原始值添加属性不会报错呢?
接下来展示一段代码
代码分析:
//1、
 var num = 4;
 num.length= 3;
 console.log(num.length);//undefined
/* 原始类型为啥添加属性不会报错呢,当我们num.length的时候,
内部隐式的发生一个过程,new Number(4).len = 3;
就是内部会新建一个数字对象然后把4赋值进去,之后就会把这个对象delete 当我们访问num.length的时候,系统会再创建一个数字对象把4赋值进去,
这次的数字对象和上次的数字对像是两个对象(上次的已经销毁) 所以此时的数字对象并没有length属性,所以就返回undefined 这个隐式的中间环节就叫做包装类
*/ //2. var str = "abcd"; str.length = 2; console.log(str.length);//4 /* 当我们str.length的时候,str并没有length属性,此时系统就会 new ("abcd").length = 2;然后销毁,当我们再去str.length的 时候,系统会new ("abcd").length,此时对象字符串有length属性 所有就返回4 */

来个题

var str = "abc";
str
+= 1; var test = typeof(str); if(test.length==6){   test.sgin = "typeof的返回结果可能为String"; } console.log(test.sgin)//undefined

 

 

JavaScript 包装类

标签:才有   div   一个   分析   引用类型   eof   属性   string   数据类型   

原文地址:https://www.cnblogs.com/punisher999/p/12178129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!