ArkTS-基本语法
- ■ ArkTS 简介
- ■ 数据类型
- ■ 1. let
- ■ 2. boolean
- ■ 3. 数字 number
- ■ 4. 字符串 string
- ■ 5. 数组
- ■ 6. 元组
- ■ 7. 枚举
- ■ 8. Unknown
- ■ 9. void
- ■ 10. null, undefind
- ■ 11. Object类型
- ■ 12. array类型
- ■ 13. Union 联合
- ■ 14. enum 类型
- ■ 15. Aliases 别名类型
- ■ 16. 返回类型
- ■ 条件判断
- ■ 1. if else
- ■ 2. switch
- ■ 空安全 null
- ■ 运算符
- ■ 1. 非空断言运算符 !
- ■ 2. 空值合并运算符 ??
- ■ 可选链
- ■ 循环
- ■ 1. ForEach 无法使用 break 或 continue 控制循环
- ■ 2. for...of 循环
- ■ 3. for()
- ■ 4. for... in
- ■ 5. for... of
- ■ 6. for... on
- ■ 7. 遍历字符串
- ■ 8. for遍历 Map类型
- ■ Throw和Try语句
- ■ 函数
- ■ 1. 普通函数
- ■ 2. 普通函数:带返回值
- ■ 3. 箭头函数 (又名Lambda函数) 匿名函数 v*斜体样式*
- ■ 4. 可选参数的函数
- ■ 5. 函数-可选参数
- ■ 6. 函数-参数默认值
- ■ 7. 函数-Rest 剩余参数
- ■ 8. 函数-函数重载
- ■ 9. 函数-泛型函数
- ■ 10. 函数-参数为函数
- ■ 函数传递参数
- ■ 1. 按值传递参数
- ■ 2. 按引用传递参数
- ■ 3. 按引用传递参数 @LocalBuilder
- ■ 类 class
- ■ 1. 定义类
- ■ 2. 继承 extends
- ■ 字段
- ■ 1. 静态字段:
- ■ 2. getter和setter
- ■ interface 接口
- ■ 1. 接口继承 extends
- ■ 模块 (module)
- ■ 1. import 导入
- ■ 2. export 导出
- ■ 3. import 静态导入
- ■ 4. import() 动态导入
- ■ 页面和自定义组件生命周期
- ■ 1.
- ■ 2.
- ■ Polygon 绘制组件
- ■ 1.
- ■ 2.
- ■ HSP (Harmony Shared Package)动态共享包
- ■ 1.
- ■ 2.
- ■ HAR(Harmony Archive)静态共享包,
- ■ 1.
- ■ 2.
- ■ 颜色表示
- ■ 占比 (vp,px,%)
■ ArkTS 简介
ArkTS << TypeScript << JavaScript
■ 数据类型
■ 1. let
以关键字let开头的声明引入变量,该变量在程序执行期间可以具有不同的值
let hi:string='hello';hi='hello, world';常量声明
consthello:string='hello';//以关键字const开头的声明引入只读常量,该常量只能被赋值一次。自动类型推断
自动类型推断
let hi1:string='hello';//显式指定其类型let hi2='hello, world';//自动推断类型■ 2. boolean
■ 3. 数字 number
ArkTS提供number类型,任何整数和浮点数都可以被赋给此类型的变量。
整数字面量
十进制整数 例如:0、117、-345
十六进制整数 0x1123、0x00111、-0xF1A7
八进制整数 以0o(或0O)开头的八进制整数,只能包含数字(0-7)。例如:0o777
二进制整数 以0b(或0B)开头的二进制整数,只能包含数字0和1。例如:0b11、0b0011、-0b11
浮点字面量
十进制整数,可为有符号数(即,前缀为“+”或“-”);
小数点(“.”)
小数部分(由十进制数字字符串表示)
以“e”或“E”开头的指数部分,后跟有符号(即,前缀为“+”或“-”)或无符号整数。
let n1=3.14;let n2=3.141592;let n3=.5;let n4=1e2;functionfactorial(n:number):number{if(n<=1){return1;}returnn*factorial(n-1);}factorial(n1)// 7.660344000000002factorial(n2)// 7.680640444893748factorial(n3)// 1factorial(n4)// 9.33262154439441e+157umber类型在表示大整数时会造成精度丢失。在开发时可以按需使用bigInt类型来确保精度: let bigIntger:BigInt=BigInt('999999999999999999999999999999999999999999999999999999999999');console.log('bigIntger'+bigIntger.toString());■ 4. 字符串 string
let s1='Hello, world!\n';//单引号(')let s2="this is a string";//双引号(")let a='Success';let s3=`The result is ${a}`;//是用反向单引号(`)括起来的模板字面量。■ 5. 数组
■ 6. 元组
■ 7. 枚举
■ 8. Unknown
■ 9. void
■ 10. null, undefind
1.**undefined**:-表示一个变量已经声明但尚未被初始化赋值。-当一个函数没有返回值时,默认返回`undefined`。-访问对象不存在的属性也会得到`undefined`。-在 ArkTS 中,`undefined`是一个全局的常量。2.**null**:-表示一个变量被明确赋值为空值。它通常用于表示一个对象为空或没有对象引用。-开发者可以主动将变量赋值为`null`来表示该变量目前没有指向任何对象(虽然它是对象类型)。3.**相同点**:-在条件判断中,`null`和`undefined`都会被转换成`false`。-使用相等运算符(`==`)比较时,`null == undefined`为`true`;-使用严格相等运算符(`===`)比较时`null === undefined`为`false`,因为它们属于不同的类型。4.**不同点**:-类型不同:`undefined`是类型为`undefined`的值,而`null`是类型为`null`的值(在 TypeScript 中,它们都是各自的类型,ArkTS 基于 TypeScript)。-含义不同:`undefined`表示未定义,而`null`表示空对象引用。5.**使用建议**:-在变量可能不存在或未初始化时,使用`undefined`。-在变量需要被明确置空(如释放对象引用)时,使用`null`。6.**示例**:leta:string|undefined;// 声明但未初始化console.log(a);// 输出: undefinedletb:string|null=null;// 明确赋值为 nullconsole.log(b);// 输出: nullfunctionfoo(){// 没有返回值}console.log(foo());// 输出: undefinedletobj={name:"Alice"};console.log(obj.age);// 输出: undefined// 比较console.log(null==undefined);// trueconsole.log(null===undefined);// false■ 11. Object类型
object类型则用于表示除基本类型外的类型。
■ 12. array类型
let names:string[]=['Alice','Bob','Carol'];■ 13. Union 联合
union类型,即联合类型,是由多个类型组合成的引用类型。
联合类型包含了变量可能的所有类型。
class Cat{name:string='cat';// ...}class Dog{name:string='dog';// ...}class Frog{name:string='frog';// ...}type Animal=Cat|Dog|Frog|number;// Cat、Dog、Frog是一些类型(类或接口)let animal:Animal=newCat();animal=newFrog();animal=