一文彻底搞明白HarmonyOS NEXT中ArkTS的函数
四种常用的函数格式:1.无参无返回值2.无参有返回值3.有参无返回值4.有参有返回值//1 无参无返回值console.log("你的幸运数字:"+(Math.floor(Math.random()*10)));//2 有参无返回值//判断 是否为润年//4年一润,百年不润,四百年在润console.log(year+"年是闰年!");}else {console.log(year+"年是平年!"
程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长嵌入式、鸿蒙、人工智能、Java等,专注于程序员成长那点儿事,希望在成长的路上有我相伴!君志所向,一往无前!
函数是什么
函数就像一个“菜谱”,告诉计算机要做什么事情。比如,你告诉计算机:“我要把两个数相加,然后返回结果”。
函数的作用:把一段代码封装起来,重复使用,避免重复写代码。
函数的语法格式
function 函数名(参数名:数据类型,……):返回值的数据类型{
函数的实现;
return 返回值;
}
一个函数通常有三个部分: 函数名(比如 加两个数) 参数(输入的“食材”) 返回值(输出的“成品”)
ArkTS 是强类型语言,参数和返回值都需要指定类型(比如 number、string)。
参数类型:告诉函数需要什么“食材”。
返回值类型:告诉函数最终会“输出什么”。
函数定义
四种常用的函数格式:
1.无参无返回值
2.无参有返回值
3.有参无返回值
4.有参有返回值
//1 无参无返回值
function f1(){
console.log("你的幸运数字:"+(Math.floor(Math.random()*10)));
}
//2 有参无返回值
function f2(year:number){
//判断 是否为润年
//4年一润,百年不润,四百年在润
if((year%4===0)&&((year%100!==0) && (year%400===0))){
console.log(year+"年是闰年!");
}else {
console.log(year+"年是平年!");
}
}
//3. 无参 有返回值
function f3():string{
let n:number=Math.floor(Math.random()*4);
let r:string='';
switch (n){
case 0:r="快餐";break;
case 1:r="牛肉面";break;
case 3:r="包子";break;
default :r="肯德基";break;
}
return r;
}
//4 有参有返回值
function f4(name:string):string{
return name+"中午应该吃:"+f3();
}
函数的调用
//测试用例 演示函数
it("t5",0,()=>{
//1 无参无返回值
f1();
//2 有参无返回值
f2(2025);
// 3无参 有返回值
console.log(f3());
//4. 有参有返回值
console.log(f4("胡杰"));
// 封装函数 调用 验证数字是不是质数
console.log("是否为质数:"+fzs(3))
console.log("是否为质数:"+fzs(10))
})
函数是代码复用的工具,就像菜谱一样,定义好后可以多次使用。
参数是输入,返回值是输出,类型要明确。
在鸿蒙开发中,函数常用于处理事件(如按钮点击)、计算数据或构建界面逻辑。
函数练习
实现一个函数,接受一个参数,验证该参数是否为质数
// 验证数字是否为质数
function fzs(num:number):boolean{
//判断 num 是否为 质数(只能被1和他本身整除)
//任何一个数字(除0以外)都可以被1和他本身整除
//怎么判断一个数字是不是质数?就看他能不能被其他数字整除(1-他之间的数字)
let r:boolean=true;
if(num<=1){
r=false;
}else {
for (let n = 2; n < num; n++) {
if(num%n==0){
//被其他整除,不是
r=false;
break;
}
}
}
return r;
}
参数特性
形式参数和实际参数
形参:形式参数
格式:参数名:数据类型
出现在函数的定义上
定义的函数的时候,使用的是形参
实参:实际参数 格式:变量名
出现在函数调用的时候
调用函数,传递的参数就叫实参(变量)
可选参数
定义与语法
-
作用:允许函数在调用时省略某些参数,适用于非必填的场景。
-
语法:在参数名后添加
?符号,表示该参数可缺省
示例:
//函数 使用可选参数 格式:参数名?:数据类型 必须为最后一个参数
function show(name?:string){
console.log((name==undefined?"":name)+" is a good man!");
}
//调用的时候,可以传递,也可以不传递
show();
show("Tom");
1.可选参数,只能有1个,并且只能为最后一个参数 2.如果没有传递,默认为undefined
剩余参数
也叫可变参数,在函数内部作为数组使用
定义与语法
-
作用:将不确定数量的参数收集为数组,适用于可变参数场景。
-
语法:使用
...语法声明,类型必须为数组
示例:
//函数 使用 剩余参数(可变参数) 符号 ...参数名:数据类型[] 必须为最后一个参数
function show2(name:string,...hobbies:string[]){
console.log(name+"的爱好有:"+hobbies);
}
//调用的时候,可以传递,也可以不传递
show2("Feri");
show2("Feri","play");
show2("Feri","play","eat");
1.必须为最后一个参数 2.必须为数组类型 3.调用的时候,可以不传、可以传1个,也可以传多个
箭头函数
是一种简洁函数写法,语法比普通函数更灵活,尤其适合短小的函数。
// 无参数
const func1 = () => { ... };
this 的绑定
这是箭头函数最显著的特点:没有自己的 this,继承自外层函数的 this。
普通函数:this 由调用方式决定(如 new、call、apply 等)。
箭头函数:this 始终指向函数定义时的外层作用域(词法作用域)。
在类或对象的方法中,若需要在回调函数中保持 this 指向当前对象,使用箭头函数可以避免 this 指向问题。
没有 arguments 对象
箭头函数不能直接访问 arguments 对象(普通函数的 arguments 是函数调用时的所有参数的类数组)。
解决方法:使用 剩余参数语法 ...args 替代。
箭头函数的适用场景
1.回调函数:
在数组方法(如 map、filter、reduce)中使用箭头函数,代码更简洁。
2.事件处理:
在 ArkUI中,确保 this 指向正确。
3.闭包:
箭头函数常用于闭包中,因为它们不会改变 this 的指向。

好啦,就写到这里啦
更多推荐



所有评论(0)