javascript的类型

本文详细讲解了JavaScript中原始类型(如数字、字符串、布尔值、null、undefined和新增的symbol)与对象类型的区别,重点阐述了包装对象的原理和实例,以及数组和函数的独特性质。此外,介绍了对象的内存管理机制和垃圾回收。
摘要由CSDN通过智能技术生成
Javascript的类型分为两类:原始类型和对象类型

原始类型包括数字、字符串、布尔值、null和undefined,ES6新增了symbol

数字、字符串和布尔值这三种原始类型可以转成包装对象,其中只有字符串的包装对象会产生可枚举的实义属性

包装对象的原理是基本类型字面量在调用包装对象实例的方法时,首先创建对于包装对象的实例,然后在实例上调用该方法,最后销毁该实例,所以这个包装对象是临时的,一旦属性的引用和操作执行完毕后便会被回收基本数据类型通过字面量的形式创建。

let a = 'string'
a.len = 6
console.log(a.len)   // undefined

// 相当于
let aObj = new String('string')
aObj.len = 6
aObj = null
console.log(aObj.len)

包装对象可以采用对应包装对象的形式创建,

var num = new Number(1);
var bool = new Boolean(true);
var str = new String("hello");

两个特殊的原始值:null和undefined,不是数字、字符串和布尔值,通常代表了各自特殊类型的唯一成员。
除了数字、字符串、布尔值、null和undefined之外就是对象(object)了。对象是属性的集合,每个属性都由**“名/值对”**构成。

Javascript还定义了两种特殊的对象,数组函数。它们拥有和普通对象不同的行为特征。

数组

普通的js对象是“命名值” 的无序集合,而数组是带编号的值的有序集合。

函数

如果函数用来初始化(使用new运算符)一个新建的对象,我们称之为构造函数(constructor)。每个构造函数定义了一类(class)对象,由构造函数初始化的对象组成的集合。

可以看做是对象的子类型,除了数组类(Array)和函数类(Function)之外,Js语言核心定义了其他三种有用的类,Date、RegExp、Error。也可以通过定义自己的构造函数来定义需要的类。

同时对于对象,js解释器有自己的内存管理机制,可以自动对内存进行垃圾回收(garbage collection)。我们可以按需创建对象,且不必担心这些对象的销毁和内存回收。当不再有任何引用指向一个对象,解释器就会知道这个对象没用了,自动回收它所占用的内存资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值