Harmony OS开发-ArkTS三

简介: 本文介绍了ArkTS的基础语法,包括常量、命名规则、数组及其常用函数,以及函数的定义与使用,涵盖匿名函数和箭头函数的区别。通过具体示例,帮助读者快速掌握ArkTS编程技巧,踏上Harmony OS开发之旅。君志所向,一往无前!

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java相关开发、嵌入式、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前!


1.ArkTS基础语法

1.1 常量

常量:用来存储数据 (不可变)
写法:const 常量名: 类型 = 值
示例:

 Button("查看常量").onClick(()=>{
        // 常量 值不能更改的 使用:const
        const name="程序员Feri"
        console.log("Feri-常量",name)
      }).width("100%").margin(20)
AI 代码解读

image.png

1.2 命名规则

1.只能包含数字、字母、下划线、$,不能以数字开头

2.不能使用内置关键字或保留字 (比如 let、const)

3.严格区分大小写

1.3 数组

1.概念

数组:是一个容器,可以存储多个数据,这些元素可以是任何类型,包括原始类型(如number、string、boolean等)和对象类型(如object、class实例等)。

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

2.声明

可以使用以下几种方式来声明数组:

1.类型注解:

使用类型注解来指定数组中元素的类型

2.数组泛型:

使用泛型来定义数组,其中Array表示数组中元素的类型

示例:

 Button("数组变量").onClick(()=>{
        // 数组声明 2种方式
        //1.类型注解
        let arr1:string[]=["我爱Feri","必须关注","铁粉一枚!"]
        console.log("Feri-数组",arr1)
        //2.数组泛型
        let arr2:Array<number> =[1,3,5,7]
        console.log("Feri-数组",arr2)

        console.log("Feri-数组索引",arr1[1])

      }).width("100%").margin(20)
AI 代码解读

通过索引访问数组的时候,切记索引是从0开始的

3.数组的常用函数

push(): 向数组的末尾添加一个或多个元素,并返回新的长度。

pop(): 删除数组的最后一个元素,并返回那个元素。

shift(): 删除数组的第一个元素,并返回那个元素。

unshift(): 向数组的开头添加一个或多个元素,并返回新的长度。

slice(): 返回数组的一个部分,原数组不会被修改。

splice(): 通过删除现有元素和/或添加新元素来更改数组的内容。

map(): 创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数。

filter(): 创建一个新数组,包含通过所提供函数实现的测试的所有元素。

reduce(): 对数组中的每个元素执行一个由您提供的“reducer”函数(接受四个参数:累加器accumulator、当前值currentValue、当前索引currentIndex和源数组array),将其结果汇总为单个返回值。

示例:

  Button("数组操作").onClick(()=>{
        // 数组声明 2种方式
        //1.类型注解
        let arr1:string[]=["我爱Feri","必须关注","铁粉一枚!"]
        console.log("Feri-数组",arr1)
        //2.数组泛型
        let arr2:Array<number> =[1,3,5,7]
        //删除并返回最后一个元素
        console.log("Feri-数组,删除并返回最后一个元素",arr2.pop())
        //添加
        arr2.push(108)
        //删除并返回第一个元素
        console.log("Feri-数组,删除并返回第一个元素",arr2.shift())
        //获取指定索引的元素
        console.log("Feri-数组索引",arr1[1])
        //数组条件过滤
        console.log("Feri-数组", arr2.filter((e)=>{
          return e>3
        }))
        console.log("Feri-数组",arr2)
      }).width("100%").margin(20)
AI 代码解读

2.函数

2.1 函数是什么

函数是一段可重复使用的代码块,用于执行特定的任务。与JavaScript中的函数类似,但增加了类型系统和一些额外的特性,使得函数更加健壮和安全。

函数:是可以被重复使用的代码块,函数可以把具有相同或相似逻辑的代码“包裹”起来,有利于代码复用。

2.2 函数的定义

1.定义(声明)

函数需要先定义,才可以调用,那么函数的定义格式如下所示:

  function 函数名(参数名:参数数据类型,……):
  函数返回值的数据类型 {

  函数体

  [return 返回值;]
}
AI 代码解读

2.参数

函数可以有参数,也可以没有参数

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

其中参数根据定义时和调用时又分为:

● 实参:真实数据(函数调用时候的传入的真实数据)

● 形参:形式上的参数(函数定义时候写的参数)

3.返回值

函数可以有返回值也可以没有返回值

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

默认情况下,函数外部无法直接使用函数内部执行结果;

如果想要在函数外部使用内部执行结果,需要将这个结果设置为函数的返回值。

2.3 匿名函数 VS 箭头函数

1.概念:

你们函数:没有函数名的函数,通常用作回调或立即执行

箭头函数(Arrow Functions)是ES6(ECMAScript 2015)中引入的一种编写函数表达式的新语法。提供了一种更简洁的方式来书写函数,并且在某些情况下,与传统的函数表达式有所不同,尤其是在this的绑定上。

2.格式

箭头函数:使用箭头(=>)语法,使得函数定义更加简洁。

  (param) => { /* ... */ }
AI 代码解读

匿名函数:使用传统的function关键字,通常看起来更冗长。

function (param) { /* ... */ }
AI 代码解读

3.this绑定

箭头函数:不绑定自己的this,它会捕获其所在上下文的this值。这意味着箭头函数内部的this与外围函数的this保持一致。

匿名函数:有自己的this值,它通常取决于函数的调用方式。例如,在对象方法中,匿名函数的this通常指向该对象。

4.arguments对象

箭头函数:不绑定arguments对象。如果需要访问函数参数,必须使用剩余参数(...args)。

匿名函数:有自己的arguments对象,可以用来访问函数的所有参数。

5.构造函数

箭头函数:不能用作构造函数,尝试使用new操作符将会抛出错误。

匿名函数:可以作为构造函数使用,可以与new关键字一起创建新的对象实例。

6.原型属性

箭头函数:没有prototype属性。

匿名函数:有prototype属性,可以用来添加方法或属性。

7.返回对象字面量

箭头函数:如果箭头函数的函数体是一个对象字面量,需要用圆括号包裹起来,否则它会被视为一个块语句。例如:() => ({ key: 'value' })

匿名函数:可以直接返回对象字面量,不需要额外的圆括号。例如:function () { return { key: 'value' }; }

2.4 函数的使用

1.定义函数

定义3种类型:

1.无参无返回值类型

2.有参无返回值类型

3.有参有返回值类型

示例:


  //无参无返回值
function fun1(){
  console.log("Feri-函数","无参无返回值类型")
}
//有参无返回值
function fun2(num1:number,num2:number){
  console.log("Feri-函数,求和=",num1+num2)
  console.log("Feri-函数","有参无返回值类型")
}
//有参有返回值
function fun3(num1:number,num2:number):number{
  return num1+num2

}
AI 代码解读

2.使用函数(函数调用)

示例:

 Button("无参无返回值函数").onClick(()=>{
        fun1()
      }).margin(20)
      Button("有参无返回值函数").onClick(()=>{
        fun2(1,2)
      }).margin(20)
      Button("有参有返回值函数").onClick(()=>{
        console.log("Feri-函数,有参有返回值",fun3(128,168))
      }).margin(20)
AI 代码解读

效果:

image.png

好啦,本篇文章就到这里啦,感谢各位的观看,关注我,跟着我一起翱翔Harmony OS的开发旅途!

目录
打赏
0
1
1
0
50
分享
相关文章
HarmonyOS Next 简单上手元服务开发
本文介绍了 HarmonyOS Next 中元服务的开发流程与关键特性。元服务是一种轻量级应用程序形态,支持免安装、秒开直达,适用于听音乐、打车等场景,大幅提升服务获取效率。文章详细讲解了元服务的开发旅程,包括在 AGC 平台上新建项目、修改名称与图标、新增卡片等内容,并提供了代码示例,如 AtomicServiceTabs 的 tab 切换和标题设置、AtomicServiceNavigation 的路由管理等。此外,还探讨了 AtomicServiceWeb 的使用方法,涵盖鸿蒙页面与 h5 页面的数据传递及方法调用。
51 19
HarmonyOS Next 简单上手元服务开发
|
2天前
|
鸿蒙开发:信息标记组件
使用信息标记组件Badge,不需要我们在关注位置问题,我们通过position属性进行控制即可,而且针对信息的显示和隐藏,也不用过多的条件判断,可以说是非常的简单。
鸿蒙开发:信息标记组件
鸿蒙开发:了解Canvas绘制
本文主要简单的概述了Canvas绘制的基础知识,大家作为一个简单的了解即可,下面的几篇文章,我们会对相关的绘制再做进一步的分析,首先可以先做一个简单的总结:DrawingRenderingContext在使用上远远没有CanvasRenderingContext2D使用起来方便,比如在修改画笔的粗细,颜色等属性上,就可以体现出来。
鸿蒙开发:了解Canvas绘制
|
3天前
|
鸿蒙开发 HarmonyOS DevEco Studio 常用快捷键
本文介绍了 HarmonyOS开发中常用的 DevEco Studio快捷键,帮助开发者提升效率。内容涵盖编辑、查找替换、编译运行、调试及其他功能的快捷键操作,适用于 Win 和 Mac 系统。例如,`Ctrl + E`(快速切换文件)、`Shift + F10`(运行程序)和 `F8`(单步调试)等常用组合。由黑马程序员整理,欢迎补充或修正!
61 5
鸿蒙开发 HarmonyOS DevEco Studio 常用快捷键
|
3天前
|
API
鸿蒙开发:单一手势实现长按事件
虽然说我们可以通过onTouch来实现一个长按事件,但是如果想要实现连续,多指那么就比较麻烦,远远没有LongPressGesture实现起来简单,所以在实际的开发中,大家还是以LongPressGesture为主。
鸿蒙开发:单一手势实现长按事件
|
4天前
鸿蒙开发:单一手势实现多次点击事件
TapGesture点击手势,在实际的开发中,更多的是运用于双击或者需要多次点击的场景,如果仅仅是单次点击,建议大家直接使用onClick即可。
鸿蒙开发:单一手势实现多次点击事件
|
5天前
|
鸿蒙开发:openCustomDialog关闭指定Dialog
以上呢就是两种隐藏指定的Dialog方式,比较的简单,具体的场景,常见于,页面多个弹出Dialog,但是需要隐藏指定的Dialog场景,当然了,也适用于常见的普通场景。
32 14
HarmonyOS:ArkTS 显式动画 animateTo 自学指南
本文深入解析了 ArkTS 中的 `animateTo` 全局显式动画接口,帮助开发者掌握其使用方法。文章从接口概述、参数详解到使用注意事项,结合实际示例代码,全面展示了如何通过配置 `AnimateParam` 对象实现流畅的动画效果。内容涵盖属性动画、布局变化及组件转场等场景,并强调不同版本的支持特性。适合初学者系统学习,也供进阶开发者参考优化动画体验。希望本文能助你快速上手 `animateTo`!
41 7
鸿蒙开发:动态添加节点
流程就是,通过typeNode来创建自己的组件,然后使用追加到FrameNode节点中,然后将自定义节点挂载到NodeContainer上即可,主要使用场景,需要动态创建组件的场景。
鸿蒙开发:动态添加节点
|
2天前
鸿蒙开发:如何实现文本跑马灯效果
如果只是一个普通的跑马灯效果,而且Text文本组件中的TextOverflow.MARQUEE可以满足需求,以Text为主,如果你想控制文本的速度,暂停等功能,可以使用Marquee,如果你想实现复杂的场景滚动,比如图片,各种组件嵌套滚动,这种只能自己定义了。
鸿蒙开发:如何实现文本跑马灯效果