鸿蒙HarmonyOS教程-TypeScript语言简介【入门篇】_鸿蒙 typescript 基础

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img

img
img
htt

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
img

正文

null

null是一个只有一个值的特殊类型。表示一个空对象引用。用 typeof 检测 null 返回是 object。

var person = null; // 值为 null(空), 但类型为object
undefined

undefined 是一个没有设置值的变量。typeof 一个没有值的变量会返回 undefined。

var person; // 值为 undefined, 类型是undefined
var person = undefined; // 值为 undefined, 类型为 undefined
undefined 和 null 的区别

null 和 undefined 的值相等,但类型不等:

typeof undefined // undefined
typeof null // object
null === undefined // false (类型不等)
null == undefined // true (值相等)

二、变量

var [变量名] : [类型] = 值;

var uname = "Runoob";
let password = "123456";

三、常量

const PI = 3.141592653589793;

四、流程控制语句

// if
var num:number = 2
if(num > 0) {
console.log(num+" 是正数")
} else if(num < 0) {
console.log(num+" 是负数")
} else {
console.log(num+" 不是正数也不是负数")
}
// switch
var grade:string = "A";
switch(grade) {
case "A": {
console.log("优");
break;
}
case "B": {
console.log("良");
break;
}
case "C": {
console.log("及格");
break;
}
case "D": {
console.log("不及格");
break;
}
default: {
console.log("非法输入");
break;
}
}
// for
var num:number = 5;
var i:number;
var factorial = 1;
for(i = num;i>=1;i--) {
factorial *= i;
}
// for in
var j:any;
var n:any = "a b c";
for(j in n) {
console.log(n[j]);
}
// for of
let someArray = [1, "string", false];
for (let entry of someArray) {
console.log(entry); // 1, "string", false
}
// forEach
let list = [4, 5, 6];
list.forEach((val, idx, array) => {
// val: 当前值
// idx:当前index
// array: Array
});
// every
let list = [4, 5, 6];
list.every((val, idx, array) => {
// val: 当前值
// idx:当前index
// array: Array
return true; // Continues
// Return false will quit the iteration
});
// while
var num:number = 5;
var factorial:number = 1;
while(num >=1) {
factorial = factorial * num;
num--;
}
// do while
var n:number = 10;
do {
console.log(n);
n--;
} while(n>=0);

在循环语句中支持breakcontinue关键字,跳出或继续循环

五、函数

语法格式:

// 默认
function function_name(){}
// 带返回值,:后的T为返回值类型
function function_name(): T{}
// 带参函数,支持默认值
function function_name(param1[:type],param2[:type] = default_value) {}
// 带剩余参数,函数的最后一个命名参数 restOfName 以 ... 为前缀,它将成为一个由剩余参数组成的数组
function buildName(firstName: string, ...restOfName: string[]) {
return firstName + " " + restOfName.join(" ");
}
// 匿名函数
var res = function( [arguments] ) { ... }
// 构造函数
var res = new Function ([arg1[, arg2[, ...argN]],] functionBody)
// Lambda 函数
( [param1, param2,…param n] )=>statement;

六、类( Class )

语法格式:

class class_name {
// 类作用域
}
普通

示例:

class Car {
// 字段
engine:string;
// 构造函数
constructor(engine:string) {
this.engine = engine
}
// 方法
disp():void {
console.log("发动机为 : "+this.engine)
}
}
var obj = new Car("Engine 1")
obj.field_name // 访问属性
obj.function_name() // 访问方法
继承

使用extends作为关键字:

class Shape {
Area:number
constructor(a:number) {
this.Area = a
}
test() {}
}
class Circle extends Shape {
disp():void {
console.log("圆的面积: "+this.Area)
}
test() {
super.test() // 重写父类方法
}
}
var obj = new Circle(223);
obj.disp();
obj.test;

七、接口

语法定义:

interface interface_name {
}
普通
interface IPerson {
firstName:string,
lastName:string,
sayHi: ()=>string
}
var customer:IPerson = {
firstName:"Tom",
lastName:"Hanks",
sayHi: ():string =>{return "Hi there"}
}
接口继承

接口可以通过关键字extends来继承其他接口以扩展自己。

单继承
interface Person {
age:number
}
interface Musician extends Person {
instrument:string
}
var drummer = <Musician>{};
drummer.age = 27
drummer.instrument = "Drums"
多继承
interface IParent1 {
v1:number
}
interface IParent2 {
v2:number
}
interface Child extends IParent1, IParent2 { }
var Iobj:Child = { v1:12, v2:23}

八、导入( Import )

通过关键字import导入其他文件

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

extends IParent1, IParent2 { } | | |var Iobj:Child = { v1:12, v2:23}` |

八、导入( Import )

通过关键字import导入其他文件

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
[外链图片转存中…(img-Vv2QcBxw-1713446209094)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值