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

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

函数重载

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

函数名相同

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

相关推荐
吴梓穆25 分钟前
UE5学习笔记 FPS游戏制作37 蓝图函数库 自己定义公共方法
笔记·学习·ue5
吴梓穆32 分钟前
UE5学习笔记 FPS游戏制作41 世界模式显示UI
笔记·学习·ue5
虾球xz37 分钟前
游戏引擎学习第200天
学习·游戏引擎
梅子酱~1 小时前
Vue 学习随笔系列二十二 —— 表格高度自适应
javascript·vue.js·学习
s_little_monster1 小时前
【Linux】进程信号的捕捉处理
linux·运维·服务器·经验分享·笔记·学习·学习方法
JackmoodCC2 小时前
Java学习总结-递归-递归寻找文件绝对路径
学习
守护者1702 小时前
JAVA学习-练习试用Java实现“实现一个Hadoop程序,使用Hive进行复杂查询和数据筛查”
java·学习
吴梓穆2 小时前
UE5学习笔记 FPS游戏制作35 使用.csv配置文件
笔记·学习·ue5
虾球xz2 小时前
游戏引擎学习第199天
学习·游戏引擎
A林玖3 小时前
【计算机相关学习】R语言
开发语言·学习·r语言