欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript数据类型

程序员文章站 2022-06-04 22:56:05
...

基本类型:String,Boolean,Number,Undefined,Null

基本包装类型:String,Boolean,Number

引用类型:Object,Array,Data,RegExp,Function

单体内置对象:Global,Math

基本包装类型解析:

//我们平常写程序的过程:
var str = 'hello'; //string 基本类型
var s2 = str.charAt(0); //在执行到这一句的时候 后台会自动完成以下动作 :
( 
 var _str = new String('hello'); // 1 找到对应的包装对象类型,然后通过包装对象创建出一个和基本类    
                                 //型值相同的对象
 var s2 = _str.chaAt(0); // 2 然后这个对象就可以调用包装对象下的方法,并且返回结给s2.
 _str = null;  //    3 之后这个临时创建的对象就被销毁了, str =null; 
 ) 
alert(s2);//h 
alert(str);//hello

1、

为了便于操作基本类型值,ECMAScript还提供了3个特殊的引用类型:Boolean、Number和String。具有与各自的基本类型相应的特殊行为。实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据。

2、

基本类型值不是对象,因而从逻辑上讲它们不应该有方法(尽管如我们所愿,它们确实有方法)。其实,为了让我们实现这种直观的操作,后台已经自动完成了一系列的处理。
(1)创建String类型的一个实例;
(2)在实例上调用指定的方法;
(3)销毁这个实例。

经过处理,基本的字符串值就变得跟对象一样了

3、

由此我们可以知道,引用类型和基本包装对象的区别在于:生存期
引用类型所创建的对象,在执行的期间一直在内存中,而基本包装对象只是存在了一瞬间

结论:

普通的内置对象与基本包装类型的主要区别就是对象的生命期,使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中,而自动创建的基本包装类型的对象,则只是存在于一行代码的执行瞬间,然后立即被立即销毁。这意味着我们不能在运行时为基本包装类型值添加属性和方法。怎么才能给基本类型添加方法或者属性呢?可以在基本包装对象的原型下面添加(每个对象都有原型)。

参考文章链接:https://www.cnblogs.com/runhua/p/9588769.html