【鸿蒙开发】ArkTS语法以及基础组件详解教程

一 ArkTS

1.1 声明(变量类型必须写,初始化必须写,末尾必须加分号)

let 是可变,const 是不可变,该常量只能被赋值一次。

const hello: string = 'hello';
let num:number = 1
// 不允许使用val
var age:number = 1;
// 以下三个不能用
// let  num3:undefined
// let  num4:null
// let  num5:any

1.2 类型

1.2.1 string

可以使用单引号或者双引号表示,string拼接不能用+(可以用但不推荐),只能用反单引号(只有11以上才能用)

let a:string = 'Success';
let a1:string = "dddd"
let s3:string = `The result is ${a}`;

1.2.2 联合类型

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

declare type ResourceStr = string | number;
基础类型
typeof str == 'string'
obj使用 instanceof
dog instanceof Dog

1.3 数组

let names: string[] = [‘Jack’, ‘Rose’]
遍历优先使用 forEach

//定义数组
let names: string[] = ['Jack', 'Rose']

names.forEach((value: string, index: number, array: string[]) => {
})
for (let i = 0; i < names.length; i++) {
  console.log(i + ':' + names[i])
}
//for of 迭代器,直接得到元素
for (let name of names) {
}
//禁止使用 for in 迭代器,
for (let i in names) {
  console.log(i + ':' + names[i])
}

1.2 方法

function 方法名:返回类型,返回类型void也最好写上,参数的类型也必须写

// 无参数
function add():void
// 有参数
function add(name:string):void{
    
}
// 可选参数,可以用undefined
function add(name:string,age?:number):void{
    // 虽然不推荐使用 undefined 或者是 null,但是可以判断是否初始化
    if(age == null)
    if(age == undefined)
    // 如果a没有给值,那么就用0 ,
    let ageTwo = age?age:0
    
}
//默认参数(默认参数不可以和可选参数共同使用)
function add(name:string,age:number = 0):void{

}


// api 11 不允许
let funB = function (a: number, b: number) {

}
// 可以变长参数
function add(...numbers: number[]){

    let result: number = 0;
    for (let i = 0; i < numbers.length; i++) {
      result = result + numbers[i]
    }
    // 循环
    numbers.forEach((value, index, arr) => {
      log(value + '--' + index + '---' + arr)
    })
    // for of 也可以用
    for (let n of numbers) {
      log(n + "")
    }
    return result;
  }

1.4 箭头函数

相当于java中的lamalda表达式

type Handler = (s: string, no: number) => string;
(event: ClickEvent) => void//这个就是箭头函数
onClick(event: (event: ClickEvent) => void): T;

1.5 条件语句

1.5.1 if else

条件表达式可以是任何类型。但是对于boolean以外的类型,会进行隐式类型转换:是否!=null

if (condition1) {
  // 语句1
} else if (condition2) {
  // 语句2
} else {
  // else语句
}
let s1 = 'Hello';
if (s1) {
  console.log(s1); // 打印“Hello”
}

1.5.2 switch

let s1 = 'Hello';
switch (s1) {
  case "label1": // 如果label1匹配,则执行
    break; // 可省略
  case "label2":
  case "label3": // 如果label2或label3匹配,则执行
    break; // 可省略
  default:
}

1.5 三元表达式

condition ? expression1 : expression2

let s: string = '1';
let newS: string = s ? s : ""
let newS2: string = 1>0 ? '大于0' : "小于0"

1.6 错误处理

throw 语句用于抛出异常或错误,try catch

getName() : string  {
  throw new Error('this error')
  return '';
}

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

1.7 枚举

enum Color {
  // 一般也不会写 后面的值
  Red = 0xFF0000,
  Green = 0xFFFF00,
  Blue = 0xFFFFFF,
  // 禁止用不同的类型
  // Black = "0xFFFFFF",
}

1.8 类

类的属性不用let,方法不用加 function,
也是单继承,多实现,
修饰符号有public protect private,默认就是public。
类中使用属性和方法时,必须使用this.,否则找不到,访问父类属性和方法只能super.
静态方法静态属性,必须使用Class去拿,否则拿不到,
如果类或者接口只有属性,初始化的时候可以使用{}
继承属性不可以重写,方法不可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值