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

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

函数重载

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

函数名相同

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

相关推荐
纵有疾風起5 小时前
C++—string(1):string类的学习与使用
开发语言·c++·经验分享·学习·开源·1024程序员节
yue0087 小时前
C#理论学习-WinForm实践开发教程总结
开发语言·学习·c#
Mr.Jessy8 小时前
Web APIs学习第一天:获取 DOM 对象
开发语言·前端·javascript·学习·html
CodeLongBear8 小时前
Day02计算机网络网络层学习总结:从协议到路由全解析
学习·计算机网络·dubbo
我先去打把游戏先9 小时前
ESP32开发指南(基于IDF):连接AWS,乐鑫官方esp-aws-iot-master例程实验、跑通
开发语言·笔记·单片机·物联网·学习·云计算·aws
雍凉明月夜10 小时前
人工智能学习中深度学习之python基础之迭代器、生成器、文件处理和模块等
python·深度学习·学习·pycharm
半夏知半秋10 小时前
mongodb的复制集整理
服务器·开发语言·数据库·后端·学习·mongodb
2301_8029399011 小时前
从零开始学习Redis(五):多级缓存
redis·学习·缓存
Chunyyyen12 小时前
【第二十周】自然语言处理的学习笔记05
笔记·学习·自然语言处理
笨鸟笃行12 小时前
百日挑战——单词篇(第十一天)
学习