四、HarmonyOS 基础语法

发布时间 2023-11-29 10:30:47作者: 创客未来

1. 变量

ets 是 ts 语法发扩展

1.1 组件外部声明变量

/**
 * author:创客未来
 * copyright:com.ckFuture.hrb
 */

//ets 是 ts 语法的扩展
//声明变量并赋值 :初始化
let pome: string='我是字符串'

//声明变量,未赋值
let age: number
age = 18


@Entry
@Component
struct Index {
  @State message: string = 'Hello World'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

1.2 组件内部声明变量

注意:在组件内部声明变量是不需要使用 let 。

@Entry
@Component
struct First {
  //组件内部声明变量不需要 let 
  pome:string = '我是内部变量'
  build() {
      Column() {
//使用内部组件的变量需要使用 this.
Text(this.pome) .fontSize(30) .fontWeight(FontWeight.Bold) } .width('100%').height('100%') } }

2. 数据类型

2.1 数值类型

// 数值
let num1:number = -3.1415
let num2:number = 0b10100
let num3:number = 0o107
let num4:number = 0x012abcf
let num5:number = 10+5

2.2 字符串类型

// 字符串
let str1:string = 'HarmonyOS' + 'ArkTS'
let str2:string = "HarmonyOS"
let str3:string = `圆周率:${num1}`

2.3 布尔类型

// 布尔
let stateOn:boolean = true
let stateOff:boolean = false

2.4 数组类型 

// 数组 Array
let names1:string[] = ['小明','小红']
let names2:Array<string> = ['小明','小红']

2.5 联合类型

// 联合类型(Union Types) 表示取值可以为多种类型中的一种
let lianHe1:string|number|boolean
lianHe1 = 'seven'
lianHe1 = 7
lianHe1 = true

2.6 枚举类型

// 枚举 enum类型是对JS标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字。
enum Color {Red,Green,Blue}
let c:Color = Color.Green

2.7 元组类型

// 元组 允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
//    比如你可以定义一对值分别为string和number类型的元组
let x:[string,number]
x = ['hello',10]

2.8 Unknown类型

// Unknown 有些时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。
//        这种情况下,我们不希望类型检查这些值进行检查而是直接让它通过编译阶段的
//        检查。那么我们可以使用unknown类型来标记这些变量(同 any)
let notSure:unknown = 4;
notSure = 'maybe a string instead';
notSure = false;

2.9 void 类型

// void 当一个函数没有返回值时,你通常会见到其返回值类型是void
function test(params):void {
  console.log('This is function is void')
}

2.10 Null 和 Undefined 类型

// Null 和 Undefined
// TS里,Undefined和Null两者各自有自己的类型分别叫做undefined和null
let u:undefined = undefined;
let n:null = null;
// 数值
let num1:number = -3.1415
let num2:number = 0b10100
let num3:number = 0o107
let num4:number = 0x012abcf
let num5:number = 10+5

// 字符串
let str1:string = 'HarmonyOS' + 'ArkTS'
let str2:string = "HarmonyOS"
let str3:string = `圆周率:${num1}`

// 布尔
let stateOn:boolean = true
let stateOff:boolean = false

// 数组 Array
let names1:string[] = ['小明','小红']
let names2:Array<string> = ['小明','小红']

// 联合类型(Union Types) 表示取值可以为多种类型中的一种
let lianHe1:string|number|boolean
lianHe1 = 'seven'
lianHe1 = 7
lianHe1 = true

// 枚举 enum类型是对JS标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字。
enum Color {Red,Green,Blue}
let c:Color = Color.Green

// 元组 允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
//    比如你可以定义一对值分别为string和number类型的元组
let x:[string,number]
x = ['hello',10]

// Unknown 有些时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。
//        这种情况下,我们不希望类型检查这些值进行检查而是直接让它通过编译阶段的
//        检查。那么我们可以使用unknown类型来标记这些变量(同 any)
let notSure:unknown = 4;
notSure = 'maybe a string instead';
notSure = false;

// void 当一个函数没有返回值时,你通常会见到其返回值类型是void
function test(params):void {
  console.log('This is function is void')
}

// Null 和 Undefined
// TS里,Undefined和Null两者各自有自己的类型分别叫做undefined和null
let u:undefined = undefined;
let n:null = null;



import router from '@ohos.router'
@Entry
@Component
struct First {
  build() {
      Column() {
        //条件语句控制显示
        if(stateOn){
          Text(names1[0])
            .fontSize(30)
            .fontWeight(FontWeight.Bold)
        }else{
          Text(names1[1])
            .fontSize(30)
            .fontWeight(FontWeight.Bold)
        }
      }
      .width('100%').height('100%')
  }
}