javascript的类型

2023-11-12

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)。我们可以按需创建对象,且不必担心这些对象的销毁和内存回收。当不再有任何引用指向一个对象,解释器就会知道这个对象没用了,自动回收它所占用的内存资源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript的类型 的相关文章

随机推荐