2023年终总结 —— 我和CSDN相遇的第一年之“技术学习和个人成长的回顾与展望”

🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
💫个人格言:
"没有罗马,那就自己创造罗马~"


目录

🎊对2023的总结与回顾🎊

🏅获奖记录

📚学习记录 

🫶感恩相遇

TypeScrip极速入门

编程语言介绍

 页面功能

TypeScript的基础语法学习 

布尔 类型 和 数字 类型

 字符串 类型 和 数组 类型

枚举 类型

 未知 类型 和 无返回值 类型

联合 类型 


🎊对2023的总结与回顾

🏅获奖记录

📚学习记录 

​ 

🫶感恩相遇

今年是我与CSDN相遇的第一年,

        首先我要感谢自己,感谢自己的热爱和坚持。自从9月份开始,我每周都坚持更新博客,用心写好每一篇文章。在编程和技术学习方面,我从来没有放松过,一直保持着学习的态度和学徒之心。除了学习学校的知识,我还自主学习了鸿蒙系统(HarmonyOS 4.0),这个过程让我更加清楚地知道自己喜欢什么,并对未来的职业规划有了更加清晰的认识。

        其次,我想感谢所有给予我支持和鼓励的粉丝和大佬们,特别感谢以下几位大佬(hacker707,东离与糖宝,哈哥撩编程,以山河作礼。)他们愿意与我这个计算机小白分享他们的学习和工作经验,他们是我学习的榜样。

        此外,我还要特别感谢CSDN给予我展示和分享的机会。2023年,我从CSDN获得了我的第一个奖项,这份惊喜让我更加自信地参与更多的比赛。以前我一直认为这些东西与我遥不可及,但现在我发现,所有的不自信都源于对失败的恐惧。遇到CSDN之后,我变得更加自信和从容,不再害怕困难和失败。在CSDN这个学习和成长的平台上,我结识了越来越多志同道合的小伙伴,我们一起学习,共同进步。

        2024年,我会继续努力学习好我的专业技能,脚踏实地的一步一个脚印,与CSDN一起前行,共同进步,为自己的技术之路加油!也希望伟大的祖国🇨🇳越来越强大,我们一起乘风破浪,与这个时代高歌前行~

“长风破浪会有时,直挂云帆济沧海⛵~”

​ 

TypeScrip极速入门

在HarmonyOS中,主力编程语言为ArcTS,它是基于TypeScript的一种语言,其通过与ArcUI框架的匹配,拓展了生命式UI和状态管理等能力,使开发者能够以更简洁自然的方式开发跨端应用。TypeScript本身是JavaScript的超集,通过引入静态类型定义等特性,提高了代码的可维护性和可读性,有助于在编码阶段检测潜在错误,提高开发效率另外,学习TypeScript还为处理HarmonyOS应用中的UI和应用状态提供了更强大的支持,在并发任务方面也有相应的扩展。为了更好地对HarmonyOS进行开发需要掌握TypeScript语言,本篇博客我们重点介绍TypeScript语言。

编程语言介绍

ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。要了解什么是ArkTS,我们首先要了解下ArkTS、TypeScript和JavaScript之间的关系:

TypeScript 先编译成 JavaScript然后再运行JavaScript,TypeScript在JavaScript基础上加了类型批注,推断和检查的功能.

  1. JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
  2. TypeScript 是 JavaScript 的一个超集,它扩展了 JavaScript 的语法,通过在JavaScript的基础上添加静态类型定义构建而成,是一个开源的编程语言。
  3. ArkTS兼容TypeScript语言,拓展了声明式UI、状态管理、并发任务等能力。

在学习ArkTS声明式的相关语法之前,我们首先学习下TypeScript的基础语法。


 页面功能


打开在线运行,左边的是控制台输入的代码,右边的是运行结果.


TypeScript的基础语法学习 

布尔 类型 和 数字 类型

// 定义 boolean 类型 变量
let isOf = true
let isOn = falseconsole.log(isOf)
console.log(isOn)// 定义数字类型的变量let a : number = 12
let b : number = 3.14
let c : number = 0b110
console.log(a)
console.log(b)
console.log(c)

运行结果:

根据运行结果我们可以发现,即使输入的是二进制,输出的也是十进制的数字 


 字符串 类型 和 数组 类型

// 定义字符串 类型的变量
let aStr : string = "hello"//定义数组类型,
// 第一种
let arr1 : number[] = [ 1,2,3,4,6,10]
console.log(arr1)
// 数组[下标] : 获取数组中的某个值
console.log(arr1[4])

运行结果:

​ 

Ctrl C + 回车 + Ctrl V 可以输出与商行相同的内容。

// 第二种
let arr2 : Array<string> = ['a','b','d']
console.log(arr2)//  把hello添加到数组的后面
arr2.push("hello")
console.log(arr2)
//  删除数组最后的元素
arr2.pop()
console.log(arr2)arr2.splice(2,0,"hello")
console.log(arr2)arr2.splice(1, 1)
console.log(arr2)

 运行结果:

TypeScript中,可以使用数组的splice方法来实现删除和插入操作。

splice方法接受三个参数,分别是操作的起始索引删除的元素个数要插入的元素

删除元素,可以将起始索引指定删除的元素的位置删除的元素个数设为非零

例如,将一个数组arr中索引为i的元素删除,可以使用以下代码:

arr.splice(i, 1);

插入元素,可以将删除的元素个数设为0起始索引指定要插入的位置,然后在该位置插入要插入的元素。

例如,将一个元素插入到数组arr的索引为i的位置,可以使用以下代码:

arr.splice(i, 0, element);

需要注意的是,splice方法会直接修改原数组,并返回被删除的元素组成的新数组(如果有删除的元素)。


元组:有确定的元素数量和类型

// 定义一个元组
let t1: [string,number];
t1 = ["hello",100]
console.log(t1,t1[0])

运行结果:


枚举 类型

enum类型JavaScript 标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字。——固定好的常量,不会随意改动

例如:我们这里定义SexValue为MAIL和FEMAIL,到时候可以使用SexValue.MAIL 

// 定义枚举
enum SexValue{MAIL = '男',FEMAIL = '女'
}let gender :SexValue = SexValue.MAIL
console.log(gender)

运行结果: 


 未知 类型 和 无返回值 类型

// 定义 未知类型
let noSure : unknown;noSure = 4
noSure = 'hello world'// void : 函数没有返回值function myFunc(): void{console.log('执行函数,没有返回值')
}
myFunc()// Null , undefined 类型
let n = null
let un = undefined

运行结果:


联合 类型 

可以传入数字或字符串类型的值进行调用。

// 联合类型
let myF : string | number = "hello 2024!"
console.log(myF)

运行结果:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习库【03】:-NumPy-算术运算

一、说明 与常规数学一样&#xff0c;数组算术本质上是关于加法、减法、乘法和除法。在 中NumPy&#xff0c;此类操作是按元素执行的 [2]&#xff1a; NumPy 是 Numerical Python 的缩写&#xff0c;是 Python 生态系统中一个功能强大的库&#xff0c;它提供对大型多维数组和矩…

CentOS虚拟机硬盘管理

CentOS虚拟机硬盘管理 一、创建虚拟机时分配硬盘 创建虚拟机时&#xff0c;在下图这个页面需要重新选择一下硬盘&#xff0c;可以对硬盘进行配置。 默认自动分区 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e9ce72af3d934e75be95f7f86860e92b.png 选择确认分…

EasyExcel详解(结合官方文档)

EasyExcel 零、前言 文章是根据官方文档&#xff0c;加上自己的测试运行总结出来的&#xff0c;目前只总结的EasyExcel读的部分&#xff0c;写的部分还未完结&#xff0c;后续会更新1、官方文档 https://easyexcel.opensource.alibaba.com/2、EasyExcel的maven依赖 <!--…

TikTok真题第10天 | 1541.平衡括号字符串的最少插入次数、1209.删除字符串中所有相邻重复项、1530.好叶子结点对的数量

1541.平衡括号字符串的最少插入次数 题目链接&#xff1a;1541.minimum-insertions-to-balance-a-parentheses-string 解法&#xff1a; 官方题解这次写得非常好。参考题解&#xff1a;左右括号匹配 这道题一眼看过去&#xff0c;就是用栈解决。不过可以使用计数代替栈&…

私有部署ELK,搭建自己的日志中心(三)-- Logstash的安装与使用

一、部署ELK 上文把采集端filebeat如何使用介绍完&#xff0c;现在随着数据的链路&#xff0c;继续~~ 同样&#xff0c;使用docker-compose部署&#xff1a; version: "3" services:elasticsearch:container_name: elasticsearchimage: elastic/elasticsearch:7.9…

git基础概念和常用命令(日常开发收藏备用)

目录 ### 常用命令 ### 远程仓库与克隆 ### 分支管理 ### 子模块&#xff08;Submodule&#xff09; ### 其他高级操作 ### 交互式暂存&#xff08;Interactive Staging&#xff09; ### cherry-pick ### rebase ### reflog与reset ### 子树合并&#xff08;Subtree …

JavaScript 中的 Currying 是什么

Currying 是一种将函数转换为一系列接受单个参数的函数的技术。这意味着一个拥有多个参数的函数可以被转换成仅接受一个参数的函数序列。 在 JavaScript 中&#xff0c;Currying 可以通过使用闭包和函数返回来实现。下面是一个简单的例子&#xff1a; function add(a) {retur…

【LearnOpenGL基础入门——5】着色器

目录 一.简介 二.GLSL 三.数据类型 四.输入与输出 五.Uniform 六.更多属性 一.简介 着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说&#xff0c;着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立…

【基础】【Python网络爬虫】【5.数据解析】bs4、Xpath、Parsel模块、正则表达式(附大量案例代码)(建议收藏)

Python网络爬虫基础 数据解析1. 为何数据解析2. 常见的数据类型结构化数据半结构化数据非结构化数据 3. 爬虫项目实现步骤 数据解析模块1. Bs4环境安装bs4解析流程案例 - bs4碧血剑文本爬取 2. Xpath环境安装xpath解析的编码流程xpath表达式如何理解&#xff1f;案例 - 简历模板…

C# Word Excel Could not load file or assembly ‘office, Version=15

C# Word Excel Could not load file or assembly ‘office, Version15 vs2022创建的windows窗体应用程序非.netframework调用Microsoft.Office.Interop.Word;创建word文档时运行时出现未能加载文件或程序集“Microsoft.Office.Interop.Word, Version15.0.0.0, Cultureneutral, …

第3课 使用FFmpeg获取并播放音频流

本课对应源文件下载链接&#xff1a; https://download.csdn.net/download/XiBuQiuChong/88680079 FFmpeg作为一套庞大的音视频处理开源工具&#xff0c;其源码有太多值得研究的地方。但对于大多数初学者而言&#xff0c;如何快速利用相关的API写出自己想要的东西才是迫切需要…

Android studio 多界面的跳转和返回

一、新建一个Empty Activity项目&#xff1a; 二、修改activity_main.xml布局文件&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/a…

【Android Gradle 插件】ProductFlavor 配置 ( consumerProguardFiles 配置 | dimension 配置 )

Android Plugin DSL Reference 参考文档 : 文档主页 : Android Plugin 2.3.0 DSL Reference android 模块配置文档 : AppExtension - Android Plugin 2.3.0 DSL Reference ProductFlavor 文档 : ProductFlavor - Android Plugin 2.3.0 DSL Reference 一、ProductFlavor 配置…

10 Screen安全策略

一,关于安全策略 关于Screen安全策略的章节是为系统集成商准备的 root: # on -u qnxuser -T drm_t drm-intel ,他们负责实施和执行安全策略,以创建和维护一个可信赖的执行环境。 系统集成商使用QNX Neutrino安全策略来定义规则,并赋予Screen实用程序和应用程序procm…

【头歌实训】PySpark Streaming 入门

文章目录 第1关&#xff1a;SparkStreaming 基础 与 套接字流任务描述相关知识Spark Streaming 简介Python 与 Spark StreamingPython Spark Streaming APISpark Streaming 初体验&#xff08;套接字流&#xff09; 编程要求测试说明答案代码 第2关&#xff1a;文件流任务描述相…

什么是ajax,为什么使用ajax?

概念&#xff1a;ajax是一种现有的技术集合&#xff0c;技术内容包括&#xff1a;HTML或XHTML&#xff0c;CSS&#xff0c;JavaScript&#xff0c;DOM,XML,XSLT,以及最重要的XMLHttpRequest。用于浏览器与服务器之间使用异步传输&#xff0c;做到局部请求以实现局部刷新。 作用…

llvm后端之指令选择源码分析

llvm后端之指令选择源码分析 引言1 主要流程1.1 参数降级1.2 构建DAG1.3 类型合法化1.4 向量合法化1.5 DAG合法化1.6 DAG合并 2 目标实现2.1 TargetLowering2.2 SelectionDAGISel 引言 llvm后端指令选择主要是class SelectionDAGISel的子类实现。整个过程将llvm IR转为有向无环…

逆矩阵:解开线性代数之谜的魔法钥匙

逆矩阵&#xff1a;解开线性代数之谜的魔法钥匙 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一同深入探讨线性代数中的重要主题——逆矩阵…

Resolume Arena(VJ音视频软件):创意无限,视听艺术的新境界

Resolume Arena是一款领先的VJ音视频软件&#xff0c;为创意人士提供了丰富的视觉效果和音频处理功能。无论是在舞台演出、音乐会还是派对活动中&#xff0c;Resolume Arena能够将音乐、视频和图像无缝地结合&#xff0c;创造出引人入胜的视听体验。 Resolume Arena具备强大的…

Nginx快速入门:nginx实现正向代理|反向代理和正向代理的区别(八)

0. 引言 我们之前讲解的一直是nginx的反向代理配置&#xff0c;关于正向代理的实现一直没有涉及&#xff0c;但在实际生产中正向代理也有非常广泛的应用场景&#xff0c;因此&#xff0c;今天我们将针对正向代理来深入学习。 1. 相关概念 1.1 什么是反向代理 所谓反向代理&…