鸿蒙编程基础篇——控制语句和函数
·
控制语句
1. 分支语句
- if语句、if...else语句、if...else if...else语句、switch...case语句。
代码演示如下:
//if语句
if( 布尔表达式 ) {
// 布尔表达式为true执行语句块
}
//if...else语句
if( 布尔表达式 ) {
// 布尔表达式为true执行语句块
}else {
// 布尔表达式为false执行语句块
}
//switch...case语句
switch( 表达式 ) {
case 常量表达式1 :
//执行语句
break; //跳出switch语句
case 常量表达式2 :
//执行语句
break; //跳出switch语句
...
default : /* 可不写 */
//默认执行语句 当表达式不满足上面所有ease条件时执行
}
2. 循环语句
- for语句、while语句、do...while语句。
- 另外还支持for...of、forEach、every和some循环。
代码演示如下:
//for语句
for(表达式1; 表达式2; 表达式3){
//循环体代码
}
//while语句
while( 循环条件式 ){
//循环体
}
//do...while语句
do{
//循环体
}while( 循环条件表达式 )
//for...of语句 是for的简写 返回被迭代对象的属性的值
let arr = [1, "hello", true]
for (let a of arr) {
console.log("arr的值为: ", a)
}
/*输出结果如下:
arr的值为: 1
arr的值为: hello
arr的值为: true
*/
forEach、every和some是JS的循环语法,它们更像是可迭代对象的方法。
代码演示如下:
//forEach语法
const arr = ['a', 'b', 'c']
arr.forEach(a => console.log(a))
arr.forEach((value, index, array) => {
// value 代表当前值
// index 代表下标
// array代表数组本身
})
//every语法
let list = [100,200,300]
list.every((value,index,array) => {
// value 代表当前值
// index 代表下标
// array代表数组本身
return r // 返回true继续,返回false退出循环
// 在循环过程中一旦执行返回false循环停止
})
//some语法
let list = [100,200,300]
list.some((value,index,array) => {
// value 代表当前值
// index 代表下标
// array代表数组本身
return r // 在循环过程中一旦执行返回true则循环停止
})
3. 跳转语句
- break语句
当在循环体内执行到break语句时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。如果循环有嵌套关系,break语句停止的是其所在的当前层循环。
- continue语句
- 当在循环体内执行到continue语句时,他不是终止循环,而是会跳过当前循环体中的剩余代码,执行当前循环的下一轮循环。
- 对于for循环,continue语句执行后,会跳转到其第3个表达式。
- 对于while和do...while语句,continue语句执行后,会跳转到执行循环的判断条件。
函数
1. 一般函数
- 定义:
//定义函数
function 函数名(行参) {
函数体
return 返回结果
} /* 参数 和 返回结果 均可省略*/
//调用函数
函数名(实参)
- 函数调用格式:
函数名( 实际参数 )
- 函数定义时,可以定义可选参数:
function 函数名(参数1: 类型1, 可选参数?: 类型) {
函数体
}
- 函数定义时,可以设置参数的默认值
- 定义函数时,参数不能同时设置为可选参数和默认值参数。
- 在定义函数时,还可以定义剩余参数,剩余参数是针对函数参数个数不确定数量的情况时,剩余参数语法允许将一个不确定数量的参数作为一个数组传入。
代码演示如下:
function getSum(...nums: number[]) { //带有剩余参数
let sum: number = 0
for (let i = 0; i < nums.length; i++) {
sum += nums[i]
}
console.log("sum=%d", sum)
}
getSum(1, 2, 3)//可以传入任意多个number类型参数
getSum(1, 2, 3, 4, 5, 6, 7, 8, 9)
2. 箭头函数
箭头函数的箭头(=>)前相当于函数头说明,箭头(=>)后相当于函数体。
- 箭头函数是一种特殊的匿名函数,其箭头表达式形式比较简洁。
示例代码如下:
let f = (x: number) => 10 + x
//表示给参数x,执行箭头(=>)后面的语句
f(5) //调用函数f,得到15
- 当执行的表达式比较多时,可以使用 {} 括起来。
示例代码如下:
let f = (x: number) => {
x = 10 + x
return x + 20
}
f(5) //调用函数f,得到35
- 在无参情况下,可以使用空括号。
let show = () =>{ console.log("Hello")}
show()
3. 异步函数
- 异步函数是函数被调用时不阻塞后续代码执行,异步编程允许并发执行多个任务,以提高执行效率,可以通过 async 关键字定义异步函数。
示例代码如下:
//定义异步函数
async function asyncFun() {
await setTimeout(() => {
}, 1000) //耗时一秒
console.log('异步函数中输出内容')
return '调用异步函数的返回值'
}
//调用异步函数,下面一行调用在后面的输出之前
asyncFun()
//异步函数调用后的代码,上一行调用了异步函数
console.log('后面执行的代码输出语句,先输出')
- 异步函数,什么时候返回是不确定的。
- 当需要等到被调用的异步函数执行完毕后再继续调用后的代码时,可以使用 await 关键字,即等待。上面代码中的setTimeout()也是一个异步函数,因此其后面的输出会延迟1秒.await关键字只能用在async声明的异步函数内部。
- 异步函数一般返回的是Promise对象,使用异步函数返回的结果需要在then中进行
//调用异步函数
let s = asyncFun()
s.then(value => { //得到异步返回结果后执行
console.log(value)
})
//异步函数调用后的代码
console.log('后面执行的代码输出语句,先输出')
更多推荐


所有评论(0)