鸿蒙学习之TypeScript 语法理解笔记

1、变量及数据类型

// string:字符串,单引号或双引号
let msg : string = 'hello wprld'
console.log('msg:'+msg)

// number:数值、整数、浮点
 let num :number = 21
 console.log('num:'+num)

//boolean:布尔
 let finished:  boolean = true
 console.log('finished:'+finished)

// any:不确定 可以是任意 (函数用)
let ay : any = "fake"
console.log('ay:'+ay)

// union : 联合类型、可以是多个类型中的一个
let un : string|number|boolean = "rose"
console.log('un:'+un)
un = 18
console.log('un:'+un)

// Object :对象
let p = {mame:'jack',age:28}
console.log(p.mame)
console.log(p.age)

// Array :数组,元素可以是任意类型
let names : Array<string> = ['Jack','Rose']
let ages  : number[]  = [26,28]
console.log(names[0])
console.log(ages[1])

运行结果


[LOG]: "num:21" 
[LOG]: "finished:true" 
[LOG]: "ay:fake" 
[LOG]: "un:rose" 
[LOG]: "un:18" 
[LOG]: "jack" 
[LOG]: 28 
[LOG]: "Jack" 
[LOG]: 28 

2、条件控制之if-else

1、if-esle基本用法
2、if(num){

}else{}
num 可以直接作为判断条件判断是否有数据,空字符串、数字0、null、undefined都被认为是false,其他值为true

let num : number = 25

// 判断是否为奇偶
//两个“=”会比较类型,三个“=”不会,节省内存空间
if(num%2===0){
console.log(num+"为偶数")
}else{
console.log(num+"为奇数")
}

if(num){
    console.log("非0即为true",num+"为true")
}else{}

let num1:string = " "
if(num1){
    console.log("空字符串为false",num1+"为false")
}else{}

let data :any
//变量做判断条件直接判断数据有无
if (data){
    console.log("数据不存在!")
}else{
    console.log("数据存在!")
}

运行结果

[LOG]: "非0即为true",  "25为true" 
[LOG]: "空字符串为false",  " 为false" 
[LOG]: "数据存在" 
[LOG]: "25为正数" 

3、条件控制之switch

格式如下,需要break

let grade : string = "A"
switch(grade){
    case "A":{
        console.log("优秀")
        break
    }
    case "B":{
        console.log("合格")
        break
    }
    case "C":{
        console.log("不合格")
        break
    }
    default:{
        console.log("非法输入")
        break
    }


}

运行结果

[LOG]: "优秀" 

4、循环迭代

1.1、for循环

//普通for
let num :number = 0
for(let i = 1;i<=10;i++){
num++
}
console.log("循环"+num+"次")

运行结果

[LOG]: "循环10次" 

1.2 改进for循环

//定义数组
let names :string[] = ["Jack","Rose"]
// for in 迭代器,遍历得到数组脚标
for (const i in names){
    console.log(i+":"+names[i])
}
// for of 迭代器,直接得到元素
for(const name of names){
    console.log(name)
}

运行结果

[LOG]: "0:Jack" 
[LOG]: "1:Rose" 
[LOG]: "Jack" 
[LOG]: "Rose" 

2、while循环

let i :number = 1
let num :number=0
while (i<=10){
    num++
    i++
}
console.log("循环了"+num+"次")

运行结果

[LOG]: "循环了10次"

5、函数 (声明、参数、函数体、调用函数)

5.1 无返回值函数,返回值void可以省略

//无返回值函数,返回值void可以省略 
function sayHello(name:string):void{
    console.log('你好,'+name+"!")
}
sayHello("Jack")

运行结果

[LOG]: "你好,Jack!" 

5.2、有返回值函数

// 有返回值函数
function sum(x:number,y:number ):number {
    return x+y
}
let a = sum(2,3)
console.log(a)

运行结果

[LOG]: 5 

5.3、箭头函数(简化函数声明)


// 箭头函数(简化函数声明)
let sayHi = (name:string) =>{
    console.log("你好,"+name+'!')
}
sayHi("Jack")

运行结果

[LOG]: "你好,Jack!" 

5.4、可选参数

function sayHello(name?:string){
    // 判断name是否有值,如果无值则给默认
    name = name?name:'陌生人'
    
    console.log('你好'+name+'!')
}
// 有值调用
sayHello('Jack')
//无值调用
sayHello()

运行结果

[LOG]: "你好Jack!" 
[LOG]: "你好陌生人!" 

5.5、参数默认值

//参数默认值在参数后面赋值,表示参数默认值
//如果调用者没有传参,则使用默认值
function seyHello(name:string = '陌生人'){
       console.log('你好'+name+'!')
}
seyHello('Jack')
seyHello()

运行结果

[LOG]: "你好Jack!" 
[LOG]: "你好陌生人!" 

6、面向对象编程的基本语法

TypeScript具备面向对象编程的基本语法,如interface、class、enum等。也具备封装、继承、多态等面向对象的基本特征。

封面图
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/210990.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS 开发案例分享:万能卡片也能用来玩游戏

一、前言 作为一名开发爱好者&#xff0c;从大了讲&#xff0c;我学习并进行 HarmonyOS 相关开发是为了能为鸿蒙生态建设尽一份绵薄之力&#xff0c;从小了讲&#xff0c;就是为了自己的兴趣。而万能卡片是一个让我非常感兴趣的东西。 很多时候我跟别人解释什么是万能卡片&…

Redis SDS 源码

底层数据结构的好处&#xff1a; 杜绝缓冲区溢出。减少修改字符串长度时所需的内存重分配次数。二进制安全。兼容部分C字符串函数。 常用命令&#xff1a; set key value、get key 等 应用场景&#xff1a;共享 session、分布式锁&#xff0c;计数器、限流。 1、给char*定义…

【排序】直接插入排序和希尔排序

目录 一、排序思想 1、直接插入排序 2、希尔排序 二、代码实现 三、性能比较 四、排序总结 1、直接插入排序 2、希尔排序 一、排序思想 1、直接插入排序 基本思想&#xff1a;把待排序的序列选取一个整数逐个插入到已经排好的有序序列中&#xff0c;直到所有整数都插入…

Unity 下载网络图片的方法,并把图片赋值给UI和物体的方法

Unity 下载网络图片的方法&#xff0c;可使用WWW类或UnityWebRequest类&#xff0c;其中UnityWebRequest是新版的方法。 通常我们下载图片都会转成Texture&#xff0c;然后赋值给UI或者物体。 具体实现方法&#xff1a; using System.Collections; using System.Collections…

P1 什么是链表 C语言简单易懂

目录 前言 01 什么是链表 02 数组的特点 03 数组的缺点 3.1 删除数组其中一个元素 3.2 数组增加某个节点 04 链表 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《 C 》✨✨✨ &#x1f525; 推荐专栏2: 《 Linux C应用编程&#xff08;概念…

国际语音群呼系统

随着海外电话营销的发展&#xff0c;越来越多的出海企业通过国际语音群呼系统打开出海营销之路。企业出海营销运营&#xff0c;选择一个安全、高效、便捷的国际语音群呼系统非常重要。 一、什么是国际语音群呼系统&#xff1f; 国际语音群呼是指通过语音的方式批量向海外用户传…

【设计模式-4.1】行为型——策略模式

说明&#xff1a;本文介绍设计模式中的行为型设计模式中的&#xff0c;策略模式&#xff1b; 计算器 策略模式属于行为型设计模式&#xff0c;关注对象的行为。例如&#xff0c;目前有一个计算器类&#xff0c;可对两个数进行加减计算&#xff0c;如下&#xff1a; &#xf…

中国湖泊面积-水位长时序数据产品(2000-2020)

今天我们分享中国湖泊面积-水位长时序数据产品&#xff08;2000-2020&#xff09; 该数据集包含中国典型湖泊2000-2020年最大水体面积、多年平均面积、水位变化速率及空间分布矢量。 数据溯源信息 「数据来源描述」Landsat、HJ、ZY、Jason、ENVISAT、Cryosat、ICESat和HY 「数…

【Linux】信号概念和信号的产生

文章目录 一、什么是信号&#xff1f;1.signal系统调用2.从硬件解析键盘数据如何输入给内核3.同步和异步 二、信号的产生1.键盘组合键2. kill命令3.系统调用接口3.1kill3.2 raise3.3abort 4.异常5.软件条件 重谈core dump标志位 一、什么是信号&#xff1f; 以日常为例&#x…

lv11 嵌入式开发 中断处理 15

前言&#xff1a;中断属于7种异常的1种&#xff0c;这节主要讲CPU接收到中断之后怎么处理&#xff0c;回顾之前的知识。 目录 1 异常 1.1 概念 1.2 异常处理机制 1.3 ARM异常源 1.4 异常模式 1.5 ARM异常响应 1.6 异常向量表 1.7 异常返回 ​编辑 1.8 IRQ异常举例 …

Android 缩减、混淆处理和优化应用

为了尽可能减小应用的大小&#xff0c;您应在发布 build 中启用缩减功能来移除不使用的代码和资源。启用缩减功能后&#xff0c;您还会受益于两项功能&#xff0c;一项是混淆处理功能&#xff0c;该功能会缩短应用的类和成员的名称&#xff1b;另一项是优化功能&#xff0c;该功…

无效的目标发行版: 21 和springboot爆错

目录 问题描述 原因分析&#xff1a; 问题描述 springboot爆红 调整一下这个&#xff1a;把这里的version调低一点应该就可以了 无效的目标发行版: 21 调整一下这个把这里的Java version调整一下&#xff0c;我是调整到1.8&#xff08;其他没有试过&#xff09; 原因分析&a…

基于ASP的购物网站设计

摘 要 随着计算机科学的不断发展和网络的迅速普及&#xff0c;Internet 的应用已经涉及到人们生活的方方面面&#xff0c;越来越多的现代企业也意识到了这一点&#xff0c;如何在当前的网络大发展的背景下开拓市场已经成为了企业关注的重中之重。总的来说&#xff0c;互联网的…

一篇五分生信临床模型预测文章代码复现——Figure 10.机制及肿瘤免疫浸润(七)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

【计算机网络学习之路】URL概念及组成

目录 一. URL是什么 二. URL的组成 三. encode和decode 前言 本系列文章是计算机网络学习的笔记&#xff0c;欢迎大佬们阅读&#xff0c;纠错&#xff0c;分享相关知识。希望可以与你共同进步。 本篇讲解使用浏览器不可或缺的部分——URL 一. URL是什么 域名及DNS 我们在…

第一百八十六回 DropdownMenu组件

文章目录 1. 概念介绍2. 使用方法2.1 DropdownMenu2.1 DropdownMenuEntry 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何禁止页面跟随手机自动旋转"相关的内容&#xff0c;本章回中将介 绍DropdownMenu组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 …

Azure Machine Learning - 在 Azure AI 搜索中创建全文查询

Azure AI搜索中如果要为全文搜索生成查询&#xff0c;本文提供了设置请求的步骤。 本文还介绍了查询结构&#xff0c;并说明了字段属性和语言分析器如何影响查询结果。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&a…

【Cisco Packet Tracer】交换机 学习/更新/泛洪/VLAN实验

交换机的功能是连接计算机、服务器、网络打印机、网络摄像头、IP电话等终端设备&#xff0c;并实现与其它交换机、无线接入点、路由器、网络防火墙等网络设备的互联&#xff0c;从而构建局域网络&#xff0c;实现所有设备之间的通信。 本文使用Cisco Packet Tracer仿真软件&…

高效转码工具Compressor for Mac,让视频处理更轻松

在现如今的数字时代&#xff0c;视频内容已经成为人们生活中不可或缺的一部分。无论是在社交媒体上分享生活点滴&#xff0c;还是在工作中制作专业的营销视频&#xff0c;我们都希望能够以高质量、高效率地处理和传输视频文件。而Compressor for Mac作为一款强大的视频转码工具…

电大搜题微信公众号详解,助力学习者轻松考试

作为一名电大学者&#xff0c;我今天要向大家介绍一个引人注目的学习利器&#xff0c;那就是电大搜题微信公众号。对于广西开放大学的学习者们来说&#xff0c;这个微信公众号无疑将是他们学习路上的得力助手。 广西开放大学一直注重学生的学习体验和教学质量&#xff0c;为了…