HarmonyOS开发:ArkTs常见数据类型(二)

前言

上篇文章,对前6中数据类型做了简单的解析,今天我们继续后面的概述,关于数据类型,没有过多的详细拓展,至于部分数据类型的操作,在以后的文章里再做详细的介绍。

数据类型 概述
Symbol 独一无二的值
bigint 任意大的整数
enum 枚举
any 任意
unknown 未知类型
void 没有任何返回值的类型
never 永远不存在的类型

本篇的文章大致内容如下:

1、独一无二的值Symbol

2、任意大的整数bigint

3、枚举enum

4、任意any

5、未知类型unknown

6、没有任何返回值的类型void

7、永远不存在的类型never

8、相关总结

一、独一无二的值Symbol

Symbol是 ES6 新增的一种基本数据类型,它用来表示独一无二的值,通过 Symbol 函数生成。

TypeScript 复制代码
    let symbol = Symbol()

    console.log(typeof symbol)

日志打印如下:

如下举例:

TypeScript 复制代码
    let s1 = Symbol("AbnerMing")
    let s2 = Symbol("AbnerMing")

    console.log("是否相等:" + (s1 === s2))

日志打印如下:

从上边的判断我们可以看出,Symbol会返回一个独一无二的值,这个值和任何一个值都不等,虽然我们传入的标识字符串都是"AbnerMing",但是确实两个不同的值,可以理解为我们每一个人都是独一无二的,虽然可以有相同的名字,但是人还是不同的。

二、任意大的整数bigint

ArkTs中可以用 Number 表示的最大整数为 2^53 - 1,可以写为 Number.MAX_SAFE_INTEGER,但是如果超过了这个界限,可以用 BigInt来表示,它可以表示任意大的整数,使用BigInt,整数溢出的问题将不复存在。

TypeScript 复制代码
let bigint = BigInt('9999999999999')

三、枚举enum

目前在ArkTs中只提供了基于数字和基于字符串的枚举,使用enum关键字定义枚举。

默认数字(自增):

TypeScript 复制代码
export enum EnumTest {
  ONE,
  TWO,
  THREE,
  FOUR,
}

声明字符串:

在字符串枚举中,每个成员都必须使用字符串字面或另一个字符串枚举成员进行常量初始化。

TypeScript 复制代码
export enum EnumTest {
  ONE = "ONE",
  TWO = "TWO",
  THREE = "THREE",
  FOUR = "FOUR",
}

除了数字和字符串之外,枚举还支持数字和字符串混合:

TypeScript 复制代码
export enum EnumTest {
  ONE = "ONE",
  TWO = 2,
  THREE = 3,
  FOUR = 4,
}

四、任意any

上篇文章提到过,如果你声明了一个变量,而未确定类型,那么它就是一个any,当一个类型为any时,那么它是可以赋值任何类型的数据的。

TypeScript 复制代码
    let test;
    test = "测试数据"
    test = 1
    test = true

有时候,某些变量的值在编程阶段还不清楚,不希望类型检查器对这些值进行检查而是直接通过编译阶段的检查,就可以使用 any 类型来标记这些变量。

五、未知类型unknown

通过any我们需要清楚,所有数据类型都可以定义为 any。但是也可以都定义为 unknown,如下的代码,其实和any是一致的。

TypeScript 复制代码
    let test: unknown

    test = "测试数据"
    test = 100
    test = true

虽然说unknown和any有一定的共通之处,但是还是有着本质的区别的。

主要区别:

1、unknown类型只能赋值给any和unknown类型,any类型太灵活,不安全。

2、any类型可以赋值给任意类型。

如下的赋值就会出现错误,在any类型中是不会的。

六、没有任何返回值的类型void

当一个函数没有返回值时,通常其返回值会声明为 void 类型。

TypeScript 复制代码
  test(): void {

  }

一般无返回值,我们也可以省略void。

TypeScript 复制代码
 test() {

}

当然了,也可以声明给一个变量,但是仅仅适用于undefined 和 null,其他类型数据会报错。

七、永远不存在的类型never

never类型在开发中很少会遇到,它是任何类型的子类型,可以赋值给任何类型,但是,有一点需要知道,never是没有子类型的。

never类型一般是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型,如下举例所示:

TypeScript 复制代码
// 抛出异常
function error(message: string): never {
  throw new Error(message);
}

//无返回值
function infiniteLoop(): never {
  while (true) {}
}

八、相关总结

日常的开发中最常用的数据类型有:number,boolean,string,object,enum,undefined,null,其他的数据类型大家作为一个简单的了解即可。

相关推荐
__WanG22 分钟前
Flutter将应用打包发布到App Store
前端·flutter·ios
明天再做行么2 小时前
PHP8解析php技术10个新特性
android·php
鸿蒙自习室2 小时前
鸿蒙多线程开发——线程间数据通信对象01
ui·华为·harmonyos·鸿蒙
Ting丶丶2 小时前
安卓应用安装过程学习
android·学习·安全·web安全·网络安全
kingdawin2 小时前
Android系统开发-判断相机是否在使用
android
SameX3 小时前
HarmonyOS Next 企业数据备份与恢复策略
前端·harmonyos
SameX3 小时前
HarmonyOS Next 企业数据传输安全策略
前端·harmonyos
安和昂3 小时前
【iOS】bug调试技巧
ios·bug·cocoa
SuperHeroWu74 小时前
【HarmonyOS】鸿蒙应用唤起系统相机拍照
华为·harmonyos·系统相机·photo·startability·camerapicker
恋猫de小郭4 小时前
IntelliJ IDEA 2024.3 K2 模式已发布稳定版,Android Studio Meerkat 预览也正式支持
android·android studio