类型总览
JavaScript 中的数据类型
JavaScript中的数据类型
- string
- number
- boolean
- null
- undefined
- bigint
- symbol
- object 备注:其中 object 包含:Array、Function、Date、Error 等......
TypeScript 中的数据类型
TypeScript中的数据类型
上述所有 JavaScript 类型
六个新类型:
- any
- unknown
- never
- void
- tuple
- enum
- 两个用于自定义类型的方式:
- type
- interface
注意点
注意
在 JavaScript 中的这些内置构造函数:Number、String、Boolean,它们用于创建对应的包装对象, 在日常开发时,在 TypeScript 中也是同理,所以在 TypeScript 中进行类型声明时,通常都是用小写的 number、string、boolean
例如下面代码:
javascript
let str1: string;
str1 = "hello";
str1 = new String("hello"); //报错
let str2: String;
str2 = "hello";
str2 = new String("hello");
console.log(typeof str1);
console.log(typeof str2);- 原始类型 VS 包装对象
- :如 number、string、boolean,在 JavaScript 中是简单数据类型,它们在内存中占用空间少,处理速度快。
- :如 Number 对象、String 对象、Boolean 对象,是复杂类型,在内存中占用更多空间,在日常开发时很少由开发人员自己创建包装对象。
- :JavaScript 在必要时会自动将原始类型包装成对象,以便调用方法或访问属性。
javascript
// 原始类型字符串
let str = "hello";
// 当访问str.length时,JavaScript引擎做了以下工作:
let size = (function () {
// 1. 自动装箱:创建一个临时的String对象包装原始字符串
let tempStringObject = new String(str);
// 2. 访问String对象的length属性
let lengthValue = tempStringObject.length;
// 3. 销毁临时对象,返回长度值
// (JavaScript引擎自动处理对象销毁,开发者无感知)
return lengthValue;
})();
console.log(size); // 输出: 5
