上海网站建设 方案,网站策划怎么写,硬件开发需求,餐饮网站建设有什么好处前言
无论是Android还是iOS开发#xff0c;都提供了多种数据类型用于常见的业务开发#xff0c;但在ArkTs中#xff0c;数据类型就大有不同#xff0c;比如int#xff0c;float#xff0c;double#xff0c;long统一就是number类型#xff0c;当然了也不存在char类型都提供了多种数据类型用于常见的业务开发但在ArkTs中数据类型就大有不同比如intfloatdoublelong统一就是number类型当然了也不存在char类型本文针对开发中常用的数据类型做一个简单的概述便于第一次接触到ArkTs语言开发的同学能够快速的对数据类型做一个了解。
ArkTs是TypeScript的超集其数据类型也是基于TypeScript而来除了原始5种数据类型之外还有一种对象类型再结合ES6中的新类型Symbol和ES10中的新类型BigInt以及包含常见的枚举、任意类型等等大概有十多种但常见常用的就那么几种。
数据类型汇总如下
数据类型概述number数值boolean布尔string字符串undefined一个未定义或不存在的值null空object对象Symbol独一无二的值bigint任意大的整数enum枚举any任意unknown未知类型void没有任何返回值的类型never永远不存在的类型
在日常的开发中部分会高频次的出现下面我们就一一的做下分析由于篇幅有限会分为两篇文章进行概述如何判断当前数据是哪一种类型可以使用typeof关键字来判断当然了也并不是所有的类型都可以判断出来。
本文的大纲如下
1、数值类型number 2、布尔类型boolean 3、字符串类型string 4、对象object 5、未定义或不存在的值undefined 6、空null 7、相关总结
一、数值类型number
记住凡是表示数值的不管是二进制还是八进制还是其他进制疑惑是长整数小数负数等等只有一个类型表示那就是number。
局部声明须带关键字 let a: number 0 //整数let b: number -100 //负数let c: number 88.88 //小数let d: number 0b1010 //二进制 ES6let e: number 0o744 //八进制 ES6成员声明不带关键字 a: number 0 //整数b: number -100 //负数c: number 88.88 //小数d: number 0b1010 //二进制e: number 0o744 //八进制需要注意的是TypeScript中有类型推断功能类型可以不写也不会报错为了避免冗余日后的书写也建议舍弃类型标准如下
局部声明 let a 0 //整数let b -100 //负数let c 88.88 //小数let d 0b1010 //二进制let e 0o744 //八进制成员声明 a 0 //整数b -100 //负数c 88.88 //小数d 0b1010 //二进制e 0o744 //八进制当然了以上的前提必须拥有默认值如果不定义默认值其类型可携带可不携带但是为了确定类型方便之后的代码调用建议还是带上类型比较好如下
局部声明 let a:number let b:numberlet c:numberlet d:numberlet e:number成员声明 a: numberb: numberc: numberd: numbere: number如果没有声明类型也不会报错那么它是一个不确定类型any后续可以赋值任何类型数据。
二、布尔类型boolean
布尔类型没什么好说的用于标识true和false。
局部声明
//带默认值let isBoolean: boolean false//类型推断后省略类型写法let isBoolean false//不带默认值let isBoolean: boolean成员声明
//带默认值isBoolean: boolean false//类型推断后省略类型写法isBoolean false//不带默认值isBoolean: boolean其他使用方式跟number类型基本一致。
三、字符串类型string
字符串使用可单引号也可双引号都是表示一个字符串。
局部声明
//带默认值let singleQuotes: string 单引号字符串let doubleQuotes: string 双引号字符串//类型推断后省略类型写法let singleQuotes 单引号字符串let doubleQuotes 双引号字符串//不带默认值let singleQuotes: stringlet doubleQuotes: string成员声明
//带默认值singleQuotes: string 单引号字符串doubleQuotes: string 双引号字符串//类型推断后省略类型写法singleQuotes 单引号字符串doubleQuotes 双引号字符串//不带默认值singleQuotes: stringdoubleQuotes: string其他使用方式跟number类型基本一致。
四、对象object
在ArkTs中不管你是一个普通的对象还是一个数组元组集合等等都是一个对象类型。 let obj { name: AbnerMing }let test: Test new Test()let numberArray [1, 2, 3, 4, 5]let numberArrayObj new Arraynumber()let tuple: [string, number] [age, 10]let list new ArrayListnumber()let map new HashMapstring, number()console.log(当前数据类型1 typeof obj)console.log(当前数据类型2 typeof test)console.log(当前数据类型3 typeof numberArray)console.log(当前数据类型4 typeof numberArrayObj)console.log(当前数据类型5 typeof tuple)console.log(当前数据类型6 typeof list)console.log(当前数据类型7 typeof map)日志打印如下 1、普通对象
和其他语言的声明及使用方式基本一致可以对其变量私有通过get/set方法进行获取也有私有和公共关键字。
export class Test {private name: stringprivate age: numbergetName() {return this.name}setName(name: string) {this.name name}getAge() {return this.age}setAage(age: number) {this.age age}
}使用方式 let test new Test()test.setName(AbnerMing)test.setAage(10)let name test.getName()let age test.getAge()如果没有特别的要求也可以不用get和set方法
export class Test {name: stringage: number
}使用方式 let test new Test()test.name AbnerMingtest.age 10let name test.namelet age test.age除了以上的对象创建和使用之外在ArkTs中也支持直接花括号的形式声明 let test { name: AbnerMing, age: 10 }let name test.namelet age test.age2、数组
数组有两种声明方式一种是使用Array对象一种直接使用中括号[]。
let array Arraynumber()let arr []默认值 let arr [1, 2, 3, 4, 5]let array Arraynumber(1, 2, 3, 4, 5)数组如果没声明类型它是可以并存多种类型数据的如下所示 let arr [1, 字符串, true, new Test()]let array Arrayany(1, 字符串, true, new Test())所以在以后的开发中对于数组而言大家尽量精确数据类型方便后续的使用针对数组的操作比如增删改查后续的文章会有讲解大家可以持续关注。
3、元组
如果存储的元素数据类型不同则需要使用元组元组中允许存储不同类型的元素元组可以作为参数传递给函数。 let tuple [AbnerMing, 10]console.log(key: tuple[0])console.log(value: tuple[1])日志打印 4、集合
无论是单列集合list还是双列集合map都吸取了Java中的优点基本关于集合操作的方法在ArkTs中该有的都有本篇就不过多的介绍了。
五、未定义或不存在的值undefined
当你定义了一个变量而为赋值时那么它就是undefined。
比如我定义了一个变量而为进行赋值如下 let testconsole.log(typeof test)控制台打印如下 那么在以后的开发中如果你不确定某个数据是否有值无论对象还是其他类型都可以进行undefined判断
let testif (test ! undefined) {console.log(有值)
} else {console.log(无值)
}六、空null
null是一个表示空值的对象通常用来表示变量的值为“没有值”如果需要明确表示一个变量的值为空就可以使用 null。
let testnullconsole.log(test)上述的打印结果为null和undefined不同的是需要设置为null如果不设置就是undefined需要注意的是null 和 undefined 在进行比较时它们的值相等但数据类型不同。
如下比较
console.log(null undefined); // falseconsole.log(null undefined); // true除了变量的默认值赋值为null之外 还可以用来作为函数的返回值当函数没有需要返回的值时可以使用 return null表示函数的返回值为空。
null和undefined进行比较
1、null 表示对象为空而 undefined 表示缺少值。
2、声明变量但未赋值时变量的值为 undefined当需要表示空值时可以使用 null。
3、在比较时null 和 undefined 的值相等但数据类型不同。
九、相关总结
ArkTs是TypeScript的超集针对数据类型说强它则强说不强也不强比如一个变量如未指定数据类型它可以进行任何类型赋值以最后一个赋值为最终结果。 let test// anytest 0test 字符串test trueconsole.log(test)上述则会打印true所有在以后的开发中大家尽量要对数据进行类型限制既方便与类型区分也方便错误的甄别更加有利于代码的健壮。
关于数据类型中的元组、数组、集合本篇文章只是作为一个简单的了解。
为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》共计890页希望对大家有所帮助https://qr21.cn/FV7h05
《鸿蒙 (Harmony OS)开发学习手册》
入门必看https://qr21.cn/FV7h05
应用开发导读(ArkTS)应用开发导读(Java) HarmonyOS 概念https://qr21.cn/FV7h05
系统定义技术架构技术特性系统安全 如何快速入门https://qr21.cn/FV7h05
基本概念构建第一个ArkTS应用构建第一个JS应用…… 开发基础知识https://qr21.cn/FV7h05
应用基础知识配置文件应用数据管理应用安全管理应用隐私保护三方应用调用管控机制资源分类与访问学习ArkTS语言…… 基于ArkTS 开发https://qr21.cn/FV7h05
Ability开发UI开发公共事件与通知窗口管理媒体安全网络与链接电话服务数据管理后台任务(Background Task)管理设备管理设备使用信息统计DFX国际化开发折叠屏系列……