搜索
您的当前位置:首页正文

ArkTS语言介绍

来源:易榕旅网

基本知识

声明

ArkTS通过声明引入变量、常量、函数和类型。

变量声明

以关键字let开头的声明引入变量,该变量在程序执行期间可以具有不同的值。

注意:1.console.log只有在程序运行时或者打开预览器时才可以使用

           2.如果日志中没有,看看第一个设置的是否是phone

常量声明

以关键字const开头的声明引入只读常量,该常量只能被赋值一次。

对常量重新赋值会造成编译时错误。

const真的不能修改吗?

原始类型:不可以
对象类型:可以

自动类型判断

由于ArkTS是一种静态类型语言,所有数据的类型都必须在编译时确定。

但是,如果一个变量或常量的声明包含了初始值,那么开发者就不需要显式指定其类型。ArkTS规范中列举了所有允许自动推断类型的场景。

以下示例中,两条声明语句都是有效的,两个变量都是string类型:

类型

Number类型

ArkTS提供number和Number类型,任何整数浮点数都可以被赋给此类型的变量。

数字字面量包括整数字面量和十进制浮点数字面量。

整数字面量包括以下类别:

  • 由数字序列组成的十进制整数。例如:0、117、-345
  • 以0x(或0X)开头的十六进制整数,可以包含数字(0-9)和字母a-f或A-F。例如:0x1123、0x00111、-0xF1A7
  • 以0o(或0O)开头的八进制整数,只能包含数字(0-7)。例如:0o777
  • 以0b(或0B)开头的二进制整数,只能包含数字0和1。例如:0b11、0b0011、-0b11

浮点字面量包括以下:

  • 十进制整数,可为有符号数(即,前缀为“+”或“-”);
  • 小数点(“.”)
  • 小数部分(由十进制数字字符串表示)
  • 以“e”或“E”开头的指数部分,后跟有符号(即,前缀为“+”或“-”)或无符号整数。

number类型在表示大整数时会造成精度丢失。在开发时可以按需使用BigInt类型来确保精度:

Boolean类型

boolean类型由true和false两个逻辑值组成。

通常在条件语句中使用boolean类型的变量:

 

String类型

string代表字符序列;可以使用转义字符来表示字符。

字符串字面量由单引号(')或双引号(")之间括起来的零个或多个字符组成。字符串字面量还有一特殊形式,是用反向单引号(`)括起来的模板字面量。

我们可以通过toStrinig()方法将不是string类型的转换为string类型

我们在打印对象类型的数据时,直接打印的话只会显示Object

这时候我们需要使用JSON.stringify()方法将对象类型的数据转换成JSON字符串类型的数据打印

Void类型

void类型用于指定函数没有返回值。

此类型只有一个值,同样是void。由于void是引用类型,因此它可以用于泛型类型参数。

Object类型

Object类型是所有引用类型的基类型。任何值,包括基本类型的值(它们会被自动装箱),都可以直接被赋给Object类型的变量。object类型则用于表示除非基本类型外的类型。

Array类型

array,即数组,是由可赋值给数组声明中指定的元素类型的数据组成的对象。

数组可由数组复合字面量(即用方括号括起来的零个或多个表达式的列表,其中每个表达式为数组中的一个元素)来赋值。数组的长度由数组中元素的个数来确定。数组中第一个元素的索引为0。

数组中的元素必须是相同类型

数组中的元素都有一个索引,索引从0开始,第一个的索引是0

索引从0开始,长度从1开始

Enum类型

enum类型,又称枚举类型,是预先定义的一组命名值的值类型,其中命名值又称为枚举常量。

使用  . 时,会枚举可选的值,也只能选枚举的值  

Union类型

union类型,即联合类型,是由多个类型组合成的引用类型。联合类型包含了变量可能的所有类型。

我们在定义变量时,一般不能设置为null,但是可以通过联合类型来设置

Aliases类型

Aliases类型为匿名类型(数组、函数、对象字面量或联合类型)提供名称,或为已有类型提供替代名称。

运算符

赋值运算符

赋值运算符=,使用方式如x=y。

复合赋值运算符将赋值与运算符组合在一起,其中x op = y等于x = x op y。 这里op(operate:操作)指的是复合赋值运算符

复合赋值运算符列举如下:+=、-=、*=、/=、%=、<<=、>>=、>>>=、&=、|=、^=。

比较运算符

算术运算符

一元运算符为-、+、--、++。(只需要一个操作数)

二元运算符列举如下:(需要两个操作数)

位运算符

逻辑运算符

| 和 || 的区别

||:如果至少有一个条件为真,结果就为真。在进行运算时,如果第一个条件为真,则不会检查第二个条件(短路求值)。

在我测试 ' | ' 的时候 , 出现了报错 , 可能在鸿蒙中不支持使用 ' | ' 。

以下是我在vs code 使用 js 的情况

& 和 && 的区别

&&:只有在两个条件都为真时,结果才为真。在进行运算时,如果第一个条件为假,则不会检查第二个条件(短路求值)

语句

If语句

if语句用于需要根据逻辑条件执行不同语句的场景。当逻辑条件为真时,执行对应的一组语句,否则执行另一组语句(如果有的话)。

else部分也可能包含if语句。

Switch语句

使用switch语句来执行与switch表达式值匹配的代码块

如果switch表达式的值等于某个label的值,则执行相应的语句。

如果没有任何一个label值与表达式值相匹配,并且switch具有default子句,那么程序会执行default子句对应的代码块。

break语句(可选的)允许跳出switch语句并继续执行switch语句之后的语句。

如果没有break语句,则执行switch中的下一个label对应的代码块。

如果没写break,那么将会继续执行下面的语句

条件表达式

又称三元运算符

条件表达式由第一个表达式的布尔值来决定返回其它两个表达式中的哪一个。

For语句

for语句会被重复执行,直到循环退出语句值为false。

for语句的执行流程如下:

1、 执行init表达式(如有)。此表达式通常初始化一个或多个循环计数器。

2、 计算condition。如果它为真值(转换后为true的值),则执行循环主体的语句。如果它为假值(转换后为false的值),则for循环终止。

3、 执行循环主体的语句。

4、 如果有update表达式,则执行该表达式。

5、 回到步骤2。

如果判断条件是true的话,该循环是一个死循环一直执行,是false则一次也不执行

For - of 语句

使用for-of语句可遍历数组或字符串。

While语句

只要condition为真值(转换后为true的值),while语句就会执行statements语句。

do - while 语句

如果condition的值为真值(转换后为true的值),那么statements语句会重复执行

在do - while 中,无论判断条件真假,都会先执行一次循环体

do - while 循环通常在你不知道需要循环多少次时非常有用

break 语句

使用break语句可以终止循环语句或switch。

如果break语句后带有标识符,则将控制流转移到该标识符所包含的语句块之外。

continue语句

continue语句会停止当前循环迭代的执行,并将控制传递给下一个迭代

(当前语句不执行,但下面的语句正常执行,相当于跳过这条语句)

throw 和 try 语句

throw语句用于抛出异常或错误:

throw new Error('this error')

try语句用于捕获和处理异常或错误:

try {
  // 可能发生异常的语句块
} catch (e) {
  // 异常处理
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top