鸿蒙学习(二):语句&函数

if

javascript 复制代码
if (condition1) {
  // 语句1
} else if (condition2) {
  // 语句2
} else {
  // else语句
}

switch

javascript 复制代码
switch (expression) {
  case label1: // 如果label1匹配,则执行
    // ...
    // 语句1
    // ...
    break; // 可省略
  case label2:
  case label3: // 如果label2或label3匹配,则执行
    // ...
    // 语句23
    // ...
    break; // 可省略
  default:
    // 默认语句
}

条件表达式

javascript 复制代码
condition ? expression1 : expression2

如果condition的为真值(转换后为true的值),则使用expression1作为该表达式的结果;否则,使用expression2。

有点像C和Java(静态语言类型)

For语句

javascript 复制代码
for ([init]; [condition]; [update]) {  # 初始化循环计数器;循环条件;更新计数器
  statements
}
javascript 复制代码
let sum = 0;
for (let i = 0; i < 10; i += 2) {
  sum += i;
}

For-of语句

使用for-of语句可遍历数组或字符串。示例如下:

javascript 复制代码
for (forVar of expression) {
  statements
}

While语句与Do-while语句

javascript 复制代码
while (condition) {
  statements
}
javascript 复制代码
do {
  statements
} while (condition)

Break语句与Continue语句

Throw和Try语句

throw语句用于抛出异常或错误

javascript 复制代码
throw new Error('this error')

try语句用于捕获和处理异常或错误,支持finally语句。

javascript 复制代码
try {
  // 可能发生异常的语句块
} catch (e) {
  // 异常处理
}finally{
	//必须处理的
}

函数

函数声明引入一个函数,包含其名称、参数列表、返回类型和函数体。

javascript 复制代码
function 函数名(参数类型): 返回类型{
  函数体;
  return 返回值;
}

如果可以从函数体内推断出函数返回类型,则可在函数声明中省略标注返回类型。

不需要返回值的函数的返回类型可以显式指定为void或省略标注。

例如

javascript 复制代码
function 函数名(参数类型){
  函数体;
  return 返回值;
}

可选参数的格式可为name?: Type。

javascript 复制代码
function hello(name?: string) {
  if (name == undefined) {
    console.log('Hello!');
  } else {
    console.log(`Hello, ${name}!`);
  }
}

如果在函数调用中这个参数被省略了,则会使用此参数的默认值作为实参。

函数的最后一个参数可以是rest参数。

使用rest参数时,允许函数或方法接受任意数量的实参。

javascript 复制代码
function sum(...numbers: number[]): number {
  let res = 0;
  for (let n of numbers)
    res += n;
  return res;
}

sum() // 返回0
sum(1, 2, 3) // 返回6

函数的作用域

函数的调用

函数类型

javascript 复制代码
type trigFunc = (x: number) => number // 这是一个函数类型

function do_action(f: trigFunc) {
   f(3.141592653589); // 调用函数
}

do_action(Math.sin); // 将函数作为参数传入

箭头函数(又名Lambda函数)

javascript 复制代码
let 函数名 = (参数列表): 返回类型=> {
  函数体;
  return 返回值;
}

箭头函数的返回类型可以省略;省略时,返回类型通过函数体推断。

表达式可以指定为箭头函数,使表达更简短。

闭包

闭包是```由函数及声明该函数的环境组合而成的````。该环境包含了这个闭包创建时作用域内的任何局部变量。

在下例中,f函数返回了一个闭包,它捕获了count变量,每次调用z,count的值会被保留并递增。

javascript 复制代码
function f(): () => number {
  let count = 0;
  let g = (): number => { count++; return count; };
  return g;
}

let z = f();
z(); // 返回:1
z(); // 返回:2

函数重载

可以通过编写重载,指定函数的不同调用方式。

函数名相同

参数列表个数、类型不同/返回类型、个数不同/

相关推荐
psybrain6 分钟前
脑科学圈| 利用眼动追踪评估演讲情境下焦虑障碍儿童的注视行为
学习·心理学·脑科学·课堂·焦虑·儿童青少年·眼动
序属秋秋秋1 小时前
《C++初阶之内存管理》【内存分布 + operator new/delete + 定位new】
开发语言·c++·笔记·学习
许白掰2 小时前
Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
linux·运维·服务器·前端·学习·编辑器
B1nna2 小时前
Docker学习
学习·docker·容器
promising-w8 小时前
【运算放大器专题】基础篇
嵌入式硬件·学习
宝山哥哥8 小时前
网络信息安全学习笔记1----------网络信息安全概述
网络·笔记·学习·安全·网络安全
前端开发与ui设计的老司机8 小时前
从UI设计到数字孪生实战:构建智慧教育的个性化学习平台
学习·ui
X Y O9 小时前
神经网络初步学习3——数据与损失
人工智能·神经网络·学习
霖0011 小时前
C++学习笔记三
运维·开发语言·c++·笔记·学习·fpga开发
巴伦是只猫12 小时前
【机器学习笔记 Ⅲ】1 无监督学习
笔记·学习·机器学习