1083 字
5 分钟
HarmonyOS-ArkTS
ArkTS
数据类型
number、string、boolean
变量、常量
//let 变量名:类型 = 值//const 常量名:类型 = 值let age: number = 100console.log('年龄为:',age) //100命名规则
1.只能包含数字、字母、下划线、$,不能以数字开头 2.不能使用内置关键字或保留字 (比如 let、const) 3.严格区分大小写
运算符
| 算数 | + 、-、*、/、% | |
|---|---|---|
| 赋值 | +=、-=、*=、/=、%= | |
| 一元 | 前置/后置++、— | |
| 三元 | 条件 ?返回值1 :返回值2 | |
| 比较 | >、>=、<、<=、==、!=、=== | 返回布尔值,三等严格数值和类型相等 |
| 逻辑 | &&、||、! | 返回布尔值 |
运算符优先级

数组及其操作
声明格式
let 数组名:类型[ ] = [数据1,数据2…]
let names: string[] = ['a','b','c']console.log(names.toString()) //abcconsole.log(names[0]) //aconsole.log('',names.length) //3names.push('d') //a b c dnames.unshift('A') // A a b c dnames.pop() //A a b cnames.shift() //a b cnames.splice(1,2) // anames.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) //1012.箭头函数
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) //63.闭包函数
一个函数可以将另一个函数当做返回值,保留对内部作用域访问
function outerFunc():()=>{ let count = 0 return ():string=>{ count++; return count.toString() }}let invoker = outerFunc()comsole.log(invoker())//1comsole.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) //6console.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/