Harmony Next ArkTS——带你学习基础知识

223 阅读5分钟

环境及工具

HarmonyOS 5.0.0 Release
DevEcoStudio
适用于HarmonyOS Next原生开发

1. 基础入门

  • ArkTS:是一门用于开发鸿蒙应用的编程语言。
  • 编程语言:用来控制计算机工作的,可以告诉计算机我们要做的事情。
  • 编写代码 → 编译运行 → 查看效果

1.1输出语句

写法:console.log('消息说明', '打印的内容')

console.log('我说', 'Hello World')

image.png

单行注释//注释内容,快捷键:Ctrl+/

多行注释/注释内容/,快捷键:Ctrl+shift+/

2认识和存储数据

2.1 认识数据

编程语言的核心是处理 数据。

常见的数据类型:

  1. string 字符串:描述信息
  2. number 数字:计算
  3. boolean 布尔:判断真假

2.2 存储数据

2.2.1变量:专门用来存储数据的容器(可变)

// 1. 字符串 string
let title: string = '巨无霸汉堡'
console.log('字符串title', title)
// 2. 数字 number
let age: number = 18
console.log('年龄age', age)
// 3. 布尔 boolean,值 true真,false假
let isLogin: boolean = false
console.log('是否登录成功', isLogin)
// 变量存储的数据可以修改
age = 40
console.log('年龄age', age)`

image.png

2.2.2常量:用来存储数据不可变

写法:const 常量名:类型=值

jj1.png

2.2.3 命名规则

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

2.2 数组:是一个容器,可以存储多个数据

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

eg:let name:string[ ]=['小红','小明','小强']

注意:数组制定的类型和存储的数据类型要必须一致,否则会报错

获取数组元素: console.log('取出小明',name[1])
注意:索引值是从0开始的


3、函数

  1. 定义:是可以被重复使用的代码块
  2. 用法:先定义后调用
function 函数名() {
  函数体
}
函数名()

示例使用:

function star() {
  console.log('五角星', '☆')
  console.log('五角星', '☆☆')
  console.log('五角星', '☆☆☆')
  console.log('五角星', '☆☆☆☆')
  console.log('五角星', '☆☆☆☆☆')
}
// 2. 调用函数
star()
star()
star()
//3、结果输出
      ☆      
      ☆☆
      ☆☆☆
      ☆☆☆☆
      ☆☆☆☆☆

3.1参数

1.参数的作用:函数能够接收和处理外部的数据,提高函数的灵活性通用性

  • 没有参数的函数
function sum() {
  let res: number = 10 + 20
  console.log('加法结果是', res)
}
sum()
  • 带参数的函数
function sum(a: number, b: number) {
  let res: number = a + b
  console.log('加法结果是', res)
}

sum(1, 2)
sum(10, 20)
sum(100, 200)
  • 实参:真实数据(函数调用时候传入的真实数据)
  • 形参:形式上的参数(函数定义时写的参数)

3.2 返回值

返回值作用:将函数的执行结果传递给其他部分使用(函数外部)。

默认情况下,函数外部无法直接使用函数内部执行结果;如果想要在函数外部使用内部执行结果,需要将这个结果设置为函数的返回值

关键字:return

function sum(a: number, b: number) {
  let res: number = a + b
  return res
}
let num: number = sum(5, 5)
console.log('num', num)

3.3 可选参数

函数在定义的时候,设置了形参入口,但是在调用的时候并不是任何时候都需要传入实参数据,为了避免报错,我们可以将形参设置为可选参数, 或者给形参设置一个默认值

  1. 可选参数的形式
function sayHi(msg?: string) {
  console.log('打招呼语', msg)
}
sayHi('你好')
sayHi()

在一些情况下,形参的数值不能为 undefined, 否则容易引起程序的崩溃, 比如求两个数据之和, 形参的数值就不能为undefined, 否则其计算的结果不能使用到业务逻辑当中.
这时候就需要使用到默认值的形式了

function sum(x: number = 0, y: number = 0) {
  let res: number = x + y
  return res
}

console.log('结果是', sum())
console.log('结果是', sum(1, 2))

3.3 箭头函数

  1. 定义:箭头函数是一种比普通函数更简洁的一种函数学写法
let 函数名 = (形参1: 类型, 形参2: 类型) => {
  // 函数体
  // 1. 计算过程
  // 2. 返回结果
  return 计算的结果
}

函数名(实参1, 实参2)

2.示例代码

// 1. 基本写法
/*let star = () => {
  console.log('五角星', '☆')
  console.log('五角星', '☆☆')
  console.log('五角星', '☆☆☆')
  console.log('五角星', '☆☆☆☆')
  console.log('五角星', '☆☆☆☆☆')
}

star()
star()*/

// 2. 参数与返回值
/*
 * 需求1:苹果 2元/斤,买3斤需要多少钱?
 * 需求2:香蕉 4元/斤,买4斤需要多少钱?
 * */

let buy = (price: number, weight: number = 1) => {
  let result: number = price * weight
  return result
}

let apple: number = buy(2)
console.log('苹果', apple)

let banana: number = buy(4, 4)
console.log('香蕉', banana)

3.4对象

1、作用:用于描述一个物体的特征和行为
2、对象:是一个可以存储多个数据的容器
3、用法: 键值对:属性名:属性值

3.4.1对象-定义&使用

  • let 对象名称: 对象结构类型=值
  1. 通过interface接口约定 对象结构类型
interface 接口名 {
  属性1: 类型1
  属性2: 类型2
  属性3: 类型3
}

interface Person {
  name: string
  age: number
  weight: number
}

2. 定义对象并使用:对象名.属性名

// 1. 定义接口
interface Person {
  name: string
  age: number
  weight: number
}

// 2. 基于接口,定义对象
let dlrb: Person =  {
  name: '迪丽热巴',
  age: 18,
  weight: 90
}

console.log('名字', dlrb.name)
console.log('年龄', dlrb.age)

let ldh: Person =  {
  name: '刘德华',
  age: 50,
  weight: 120
}

console.log('名字', ldh.name)
console.log('年龄', ldh.age)

3.5 对象-方法

方法作用:描述对象的具体行为

  1. 约定方法类型
interface 接口名称 {
  方法名: (参数:类型) => 返回值类型
}

interface Person{
  dance: () => void
  sing: (song: string) => void
}

2. 添加方法(箭头函数)

let ym: Person = {
  dance: () => {
    console.log('杨幂说', '我来跳个舞')
  },
  sing: (song: string) => {
    console.log('杨幂说', '我来唱首', song)
  }
}


// 对象名.方法名(参数)
ym.dance()
ym.sing('爱的供养')

3.6 联合类型

联合类型是一种灵活的数据类型,它修饰的变量可以存储不同数据类型
示例:考试成绩:分数或者是级别(A/B/C)

// let 变量: 类型1  |  类型2  |  类型3 = 值

let judge: number | string = 100

judge = 'A+'
judge = '优秀'

console.log('年终考试评价', judge)

// 联合类型可以将变量值约定在一组数据范围内进行选择
let gender: 'man' | 'woman' | 'secret' = 'secret'

3.7 枚举类型

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

image.png

// 联合类型 不方便
'#ff0f29' | '#ff7100' | '#30b30e' 

定义

enum 枚举名 {
  常量1 = 值,
  常量2 = 值,
  ......
}

示例代码

// 1. 定义枚举 (定义常量列表)
enum ThemeColor {
  Red = '#ff0f29',
  Orange = '#ff7100',
  Green = '#30b30e'
}

// 2. 给变量设定枚举类型
let color: ThemeColor = ThemeColor.Orange
console.log('color', color)