1083 字
5 分钟
HarmonyOS-ArkTS

ArkTS#

<HarmonyOS第一课>ArkTS语法介绍-华为开发者学堂 (huawei.com)

数据类型#

number、string、boolean

变量、常量#

//let 变量名:类型 = 值
//const 常量名:类型 = 值
let age: number = 100
console.log('年龄为:',age) //100

命名规则#

1.只能包含数字、字母、下划线、$,不能以数字开头 2.不能使用内置关键字或保留字 (比如 let、const) 3.严格区分大小写

运算符#

算数+ 、-、*、/、%
赋值+=、-=、*=、/=、%=
一元前置/后置++、—
三元条件 ?返回值1 :返回值2
比较>、>=、<、<=、==、!=、===返回布尔值,三等严格数值和类型相等
逻辑&&、||、! 返回布尔值

运算符优先级

数组及其操作#

声明格式

let 数组名:类型[ ] = [数据1,数据2…]

let names: string[] = ['a','b','c']
console.log(names.toString()) //abc
console.log(names[0]) //a
console.log('',names.length) //3
names.push('d') //a b c d
names.unshift('A') // A a b c d
names.pop() //A a b c
names.shift() //a b c
names.splice(1,2) // a
names.splice(0,1,'b','c','d') // b c d

语句#

if-else、switch、while、for、for-of、continue,break

//1.if分支语句
if(逻辑条件1){
//条件1成立的执行代码
}
else if (逻辑条件2){
//条件2成立的执行代码
}
else{
//条件不成立的执行代码
}
//2.switch分支语句
switch(表达式){
case 值1:
//执行代码
break
case 值2:
//执行代码
break
default:
//以上都为成功匹配执行的代码
}
//3.while循环语句
while(条件){
//条件成功执行代码
}
//4.for循环语句
for(let i:number = 1;i<10;i++){
//执行代码
}
//5.for-of 遍历数组 类似for in (python)
for(let 存储变量 of 数组){
console.log('',存储变量)
}
//6.退出语句

函数#

1.函数声明和使用

function 函数名(){ //定义无参函数
//函数体
}
函数名() //调用函数
function fn(形参1:类型,a:number){ //定义有参函数
//函数体......
let result:number = a+1
return result
}
let x: number = fn(实参1,100)
console.log(x) //101

2.箭头函数

lambda表达式  简化函数声明,通常用于需要一个简单函数的地方

(参数列表):返回类型 =>{函数体}

let happy = () =>{
console.log('i am happy')
}
happy() //i am happy
let buy = (price:number,weight:number) =>{
let result:number = price*weight
return result
}
let apple:number = buy(2,3)
console.log('价格:',apple) //6

3.闭包函数

一个函数可以将另一个函数当做返回值,保留对内部作用域访问

function outerFunc():()=>{
let count = 0
return ():string=>{
count++;
return count.toString()
}
}
let invoker = outerFunc()
comsole.log(invoker())//1
comsole.log(invoker())//2

对象#

作用:用于描述一个物体的特征和行为

对象:是一个可以存储多个不同类型数据的容器

interface Person{ //通过接口约定对象结构
name:string
age:number
ismarry:boolean
}
let p1: Person = {
name:'小明',
age: 6,
ismarry: false
}
console.log(p1.name) //小明
console.log(p1.age) //6
console.log(p1.ismarry) //false

对象方法#

interface Person{ //通过接口约定对象结构
name:string
age:number
ismarry:boolean
//定义方法的类型
sleep:()=> void
work:(what:string)=> void
}
let p1: Person = {
name:'小明',
age: 6,
ismarry: false,
//
sleep: ()=> {
console.log('现在是小明的睡觉时间')
},
work:(what:string)=>{
console.log('现在是小明的',what,'时间')
}
}
p1.sleep() //现在是小明的睡觉时间
p1.work('写作业') //现在是小明的写作业时间

数组对象#

let peopleArr: Person[] = [{...},{},{}......]
console.log(JSON.stringify(peopleArr))
console.log(JSON.stringify(peopleArr[1])) //通过for of也可以进行遍历

联合类型Union#

联合类型是一种灵活的数据类型,它修饰的变量可以存储不同类型的数据

语法:let 变量名:类型1 | 类型2 | 类型3 = 值

class Cat {
// ...
}
class Dog {
// ...
}
class Frog {
// ...
}
type Animal = Cat | Dog | Frog | number
// Cat、Dog、Frog是一些类型(类或接口)
let animal: Animal = new Cat();
animal = new Frog();
animal = 42;
// 可以将类型为联合类型的变量赋值为任何组成类型的有效值

枚举类型Enum#

枚举类型是一种特殊的数据类型,约定变量只能在一组数据范围内选择值

使用枚举常量时必须以枚举类型名称为前缀。

enum ColorSet { Red, Green, Blue }
let c: ColorSet = ColorSet.Red;

常量表达式可以用于显式设置枚举常量的值。

enum ColorSet { White = '0xFF', Grey = '0x7F', Black = '0x00' }
let c: ColorSet = ColorSet.Black;
console.log(c)

类型转换#

1.字符串转数字

Number(num)、parseInt()、parseFloat()

无效时输出NaN

2.数字转字符串

num.toString()

num.toFixed():四舍五入转字符串,可设置保留几位小数

点击事件#

说明:组件 被点击时 触发的事件

作用:监听(感知)用户 点击行为,进行对应操作

语法:onclick( (参数) => {})

HarmonyOS-ArkTS
https://minthana.github.io/blog/posts/harmonyos-arkts/
作者
Mint
发布于
2024-07-16
许可协议
CC BY-NC-SA 4.0