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

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

函数重载

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

函数名相同

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

相关推荐
李小星同志32 分钟前
高级算法设计与分析 学习笔记6 B树
笔记·学习
霜晨月c43 分钟前
MFC 使用细节
笔记·学习·mfc
小江湖19941 小时前
元数据保护者,Caesium压缩不丢重要信息
运维·学习·软件需求·改行学it
dot.Net安全矩阵1 小时前
.NET内网实战:通过命令行解密Web.config
前端·学习·安全·web安全·矩阵·.net
微刻时光2 小时前
Redis集群知识及实战
数据库·redis·笔记·学习·程序人生·缓存
潮汐退涨月冷风霜4 小时前
机器学习之非监督学习(四)K-means 聚类算法
学习·算法·机器学习
GoppViper4 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
羊小猪~~4 小时前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn
Charles Ray5 小时前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
我要吐泡泡了哦6 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎