Ts的数据类型

201 阅读7分钟

TypeScript

typescript拥有六个数据类型,本文将要介绍这些数据类型并解释这些数据类型的参数和一些用法

number数据

number数据类型的定义的值

一,number数据类型可以定义整数和浮点数

image.png

二,number数据类型还可以定义一些特殊的值

image.png

三,number数据类型还可以表示二进制的值

image.png

number数据的一些内置属性

  • Number.MAX_VALUE:表示 JavaScript 中最大的正数,约为 1.8e+308。如果一个数大于这个值,JavaScript 会返回 Infinity。
  • Number.MIN_VALUE:表示 JavaScript 中最小的正数(即最接近 0 的正数),约为 5e-324。比这个值更小的值将被转换为 0。
  • Number.NaN:表示 "Not-a-Number" 值。
  • Number.NEGATIVE_INFINITY:表示负无穷大。
  • Number.POSITIVE_INFINITY:表示正无穷大。
  • Number.EPSILON:表示 1 和比 1 大的最小浮点数之间的差。
  • Number.MAX_SAFE_INTEGER:表示在 JavaScript 中可以精确表示的最大整数,即 2^53 - 1。
  • Number.MIN_SAFE_INTEGER:表示在 JavaScript 中可以精确表示的最小整数,即 -(2^53 - 1)。

image.png

image.png

number数据的一些内置方法

  • Number.isFinite(number):检查传入的参数是否是有限的数字。如果参数是有限的数字,则返回 true,否则返回 false。
  • Number.isInteger(number):检查传入的参数是否是整数。如果参数是整数,则返回 true,否则返回 false。
  • Number.isNaN(number):检查传入的参数是否是 NaN。如果参数是 NaN,则返回 true,否则返回 false。
  • Number.isSafeInteger(number):检查传入的参数是否是安全整数。如果参数是安全整数,则返回 true,否则返回 false。
  • Number.parseFloat(string):将字符串解析为浮点数。
  • Number.parseInt(string, radix):将字符串解析为指定基数(介于 2 和 36 之间)的整数。
  • Number.prototype.toFixed(digits):将数字格式化为字符串,并保留到小数点后指定位数。
  • Number.prototype.toExponential(fractionDigits):将数字转换为指数表示法。
  • Number.prototype.toPrecision(precision):将数字格式化为字符串,并按指定的精度。
  • Number.prototype.toString(radix):将数字转换为字符串。可以指定基数。
// Number.isFinite()
let finiteNumber = Number.isFinite(1000); // true
let infiniteNumber = Number.isFinite(Infinity); // false
console.log(finiteNumber, infiniteNumber);

// Number.isInteger()
let integerNumber = Number.isInteger(1000); // true
let floatNumber = Number.isInteger(1000.5); // false
console.log(integerNumber, floatNumber);

// Number.isNaN()
let notANumber = Number.isNaN(NaN); // true
let isANumber = Number.isNaN(1000); // false
console.log(notANumber, isANumber);

// Number.isSafeInteger()
let safeInteger = Number.isSafeInteger(Math.pow(2, 53) - 1); // true
let unsafeInteger = Number.isSafeInteger(Math.pow(2, 53)); // false
console.log(safeInteger, unsafeInteger);

// Number.parseFloat()
let floatFromString = Number.parseFloat("1000.5"); // 1000.5
console.log(floatFromString);

// Number.parseInt()
let integerFromString = Number.parseInt("1000", 10); // 1000
console.log(integerFromString);

// Number.prototype.toFixed()
let num1: number = 123.456;
console.log(num1.toFixed(2)); // "123.46"

// Number.prototype.toExponential()
let num2: number = 123456;
console.log(num2.toExponential(2)); // "1.23e+5"

// Number.prototype.toPrecision()
let num3: number = 123.456;
console.log(num3.toPrecision(2)); // "1.2e+2"

// Number.prototype.toString()
let num4: number = 123;
console.log(num4.toString(10)); // "123"

image.png

String类型

定义String类型

image.png

string的内置属性

length: 描述:返回字符串的长度。

image.png

string的内置方法

  1. charAt(index: number): string: 返回字符串中指定索引位置的字符。
let str: string = "Hello, TypeScript!";
console.log(str.charAt(0)); // 输出 'H'

2. charCodeAt(index: number): number: 返回字符串中指定索引位置的字符的 Unicode 编码。

let str: string = "Hello, TypeScript!";
console.log(str.charCodeAt(0)); // 输出 72

3. concat(...strings: string[]): string: 描述:连接两个或多个字符串,并返回一个新字符串。

let str1: string = "Hello, ";
let str2: string = "TypeScript!";
console.log(str1.concat(str2)); // 输出 'Hello, TypeScript!'

4. indexOf(searchValue: string, fromIndex?: number): number: 描述:返回字符串中第一次出现指定值的索引,如果没有找到则返回 -1。

let str: string = "Hello, TypeScript!";
console.log(str.indexOf("Type")); // 输出 7

5. slice(start?: number, end?: number): string: 描述:提取字符串的一个片段,并返回一个新字符串。

let str: string = "Hello, TypeScript!";
console.log(str.slice(0, 5)); // 输出 'Hello'

6. substring(start: number, end?: number): string: 描述:提取字符串的一个子串,并返回一个新字符串。

let str: string = "Hello, TypeScript!";
console.log(str.substring(0, 5)); // 输出 'Hello'

7. toUpperCase(): string: 描述:将字符串转换为大写。

let str: string = "Hello, TypeScript!";
console.log(str.toUpperCase()); // 输出 'HELLO, TYPESCRIPT!'

8. toLowerCase(): string: 描述:将字符串转换为小写。

let str: string = "Hello, TypeScript!";
console.log(str.toLowerCase()); // 输出 'hello, typescript!'

Array(数组)

定义Array(数组)

let arr: number[] = [1, 2, 3, 4, 5];

Array(数组)的一些属性

image.png

Array(数组)的一些方法

  1. push(...items: T[]): number:
  • 描述:将一个或多个元素添加到数组的末尾,并返回数组新的长度。
let arr: number[] = [1, 2, 3];
arr.push(4, 5);
console.log(arr); // 输出 [1, 2, 3, 4, 5]

2. pop(): T | undefined:

  • 描述:移除数组的最后一个元素并返回该元素。
let arr: number[] = [1, 2, 3, 4, 5];
let lastElement = arr.pop();
console.log(lastElement); // 输出 5
console.log(arr); // 输出 [1, 2, 3, 4]

3. shift(): T | undefined:

  • 描述:移除数组的第一个元素并返回该元素。
let arr: number[] = [1, 2, 3, 4, 5];
let firstElement = arr.shift();
console.log(firstElement); // 输出 1
console.log(arr); // 输出 [2, 3, 4, 5]

4. unshift(...items: T[]): number:

  • 描述:将一个或多个元素添加到数组的开头,并返回数组新的长度。
let arr: number[] = [3, 4, 5];
arr.unshift(1, 2);
console.log(arr); // 输出 [1, 2, 3, 4, 5]

5. indexOf(searchElement: T, fromIndex?: number): number:

  • 描述:返回数组中第一次出现指定元素的索引,如果没有找到则返回 -1。
let arr: number[] = [1, 2, 3, 4, 5];
console.log(arr.indexOf(3)); // 输出 2

6. splice(start: number, deleteCount?: number, ...items: T[]): T[]:

  • 描述:从数组中移除元素,并在指定位置添加新的元素。
let arr: number[] = [1, 2, 3, 4, 5];
arr.splice(2, 1, 6); // 从索引 2 开始移除一个元素,然后添加元素 6
console.log(arr); // 输出 [1, 2, 6, 4, 5]

7. slice(start?: number, end?: number): T[]:

  • 描述:提取数组的一个片段,并返回一个新数组。
let arr: number[] = [1, 2, 3, 4, 5];
let slicedArr = arr.slice(1, 4);
console.log(slicedArr); // 输出 [2, 3, 4]

TypeScript Map对象

TypeScript Map对象就是加了一个索引功能的数组

TypeScript Map对象的内置属性

TypeScript Map对象的内置方法

  1. set(key: K, value: V): Map<K, V>:
  • 描述:向 Map 中添加一个新的键值对。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);

2. get(key: K): V | undefined:

  • 描述:根据键获取对应的值,如果键不存在则返回 undefined
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.get("one")); // 输出 1
console.log(myMap.get("three")); // 输出 undefined

3. has(key: K): boolean:

  • 描述:检查 Map 中是否包含指定的键。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.has("one")); // 输出 true
console.log(myMap.has("three")); // 输出 false

4. delete(key: K): boolean:

  • 描述:从 Map 中移除指定键的键值对,如果键不存在则返回 false
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.delete("one")); // 输出 true
console.log(myMap.delete("three")); // 输出 false

5. clear(): void:

  • 描述:移除 Map 中的所有键值对。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.clear();

6. forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void:

  • 描述:对 Map 中的每个键值对执行一次提供的函数。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.forEach((value, key) => {
  console.log(`Key: ${key}, Value: ${value}`);
});
// 输出:
// Key: one, Value: 1
// Key: two, Value: 2

7. keys(): IterableIterator:

  • 描述:返回一个包含 Map 中所有键的迭代器。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let keys = myMap.keys();
for (let key of keys) {
  console.log(key);
}
// 输出:
// one
// two

8. values(): IterableIterator:

  • 描述:返回一个包含 Map 中所有值的迭代器。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let values = myMap.values();
for (let value of values) {
  console.log(value);
}
// 输出:
// 1
// 2

9. entries(): IterableIterator<[K, V]>:

  • 描述:返回一个包含 Map 中所有键值对的迭代器。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let entries = myMap.entries();
for (let entry of entries) {
  console.log(`Key: ${entry[0]}, Value: ${entry[1]}`);
}
// 输出:
// Key: one, Value: 1
// Key: two, Value: 2
  1. set(key: K, value: V): Map<K, V>:
  • 描述:向 Map 中添加一个新的键值对。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);

2. get(key: K): V | undefined:

  • 描述:根据键获取对应的值,如果键不存在则返回 undefined
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.get("one")); // 输出 1
console.log(myMap.get("three")); // 输出 undefined

3. has(key: K): boolean:

  • 描述:检查 Map 中是否包含指定的键。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.has("one")); // 输出 true
console.log(myMap.has("three")); // 输出 false

4. delete(key: K): boolean:

  • 描述:从 Map 中移除指定键的键值对,如果键不存在则返回 false
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
console.log(myMap.delete("one")); // 输出 true
console.log(myMap.delete("three")); // 输出 false

5. clear(): void:

  • 描述:移除 Map 中的所有键值对。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.clear();

6. forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void:

  • 描述:对 Map 中的每个键值对执行一次提供的函数。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.forEach((value, key) => {
  console.log(`Key: ${key}, Value: ${value}`);
});
// 输出:
// Key: one, Value: 1
// Key: two, Value: 2

7. keys(): IterableIterator:

  • 描述:返回一个包含 Map 中所有键的迭代器。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let keys = myMap.keys();
for (let key of keys) {
  console.log(key);
}
// 输出:
// one
// two

8. values(): IterableIterator:

  • 描述:返回一个包含 Map 中所有值的迭代器。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let values = myMap.values();
for (let value of values) {
  console.log(value);
}
// 输出:
// 1
// 2

9. entries(): IterableIterator<[K, V]>:

  • 描述:返回一个包含 Map 中所有键值对的迭代器。
  • 示例:
let myMap = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
let entries = myMap.entries();
for (let entry of entries) {
  console.log(`Key: ${entry[0]}, Value: ${entry[1]}`);
}
// 输出:
// Key: one, Value: 1
// Key: two, Value: 2