博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解基本包装类型Number,String,Boolean
阅读量:5157 次
发布时间:2019-06-13

本文共 885 字,大约阅读时间需要 2 分钟。

在前面我们知道了引用类型是什么了,也就能理解包装类型了。包装对象其实也是一种引用类型,之所以要单独提出来只不过是因为它们可以把原始类型的值变成(包装成)对象,这样它们也就获得了各自类型相应的特殊行为了。

每当我们读取一个基本类型值得时候,后台就会创建一个对应的基本包装对象类型的对象,从而让我们能够在调用一些方法来操作这些数据。

下面是一个实例:

var str="abc";str.length;//3str.color="red";str.color;//undefined

我们知道,基本类型值不是对象,按理说就不该有属性和方法。的确,基本类型值是没有属性和方法的,但是有种其它的能力,那就是当你读取这个基本类型值得时候,它们会偷偷地,在你毫不知情的情况下完成下面这些步骤:

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

这样我们就能够解释为什么str.length会得到3了,至于下面str.color得到undefined的结果,则是因为实例使用完后会销毁,这样我们就不能为它们添加自定义的属性和方法了(注意是自定义的,不是自带的),当然了,本身自带的还是可以用的。

要是我们执意想要给它们添加自定义的属性和方法时,那就得使用new调用基本包装类型的构造函数了,当然了,使用new Object()这个方法也可以了。

var st=new String("123");st.color="red";st.color;//"red",这是返回我们要的结果了typeof st;//"object",现在数据类型变成了对象了

再看看下面这个实例:

var str=String("123456");typeof str;//"string",注意返回的数据类型是String,不是object

上面这个实例主要是想要说明,当要使用包装类型时,一定要使用new然后调用构造函数,直接使用函数仅仅是起到转换数据类型的作用。

转载于:https://www.cnblogs.com/YeChing/p/6272779.html

你可能感兴趣的文章
源代码如何管理
查看>>
vue怎么将一个组件引入另一个组件?
查看>>
bzoj1040: [ZJOI2008]骑士
查看>>
LeetCode 74. Search a 2D Matrix(搜索二维矩阵)
查看>>
利用SignalR来同步更新Winfrom
查看>>
反射机制
查看>>
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
MATLAB基础入门笔记
查看>>
【UVA】434-Matty's Blocks
查看>>
Android开发技术周报 Issue#80
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
django知识点总结
查看>>
C++ STL stack、queue和vector的使用
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>