赞
踩
内容学习来自华为开发者学习网站
目录
3.2.1 基于ArkTS的声明式开发范式(声明式开发范式)(开发新应用推荐)
ArkTS是HarmonyOS的主力应用开发语言。
它在 TypeScript(TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力。
ArkTS、TypeScript、JavaScript的关系:
一种属于网络的高级脚本语言,被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果
JavaScript的超集,扩展了JavaScript的语法,通过在JavaScript的基础上添加静态类型定义构建而成,是一个开源的编程语言
兼容TypeScript语言,扩展了 声明式UI、状态管理、并发任务等能力
因为 ArkTS 是 TypeScript的拓展,因此在学习 ArkTS 之前要先了解 TypeScript的语法知识
TypeScript中可以使用 Boolean 来表示这个变量是布尔值,可以赋值为true或者false。
let isDone:boolean = false;
TypeScript里的 所有数字都是浮点数 ,这些浮点数的 类型是number。除了 支持十进制,还支持二进制、八进制、十六进制。
let decLiteral:number = 2023;
console.log('decLiteral is'+decLiteral);
let binaryLiteral:number = 0b11111100111;
console.log('binaryLiteral is'+binaryLiteral);
let octalLiteral:number = 0o3747;
console.log('octalLiteral is'+octalLiteral);
let hexLiteral:number = 0x7e7;
console.log('hexLiteral is'+hexLiteral);
TypeScript里使用string表示文本数据类型,可以使用**双引号(")或单引号(')**表示字符串。
let name:string="Jacky";
name="Tom";
name='Mick';
TypeScript支持以下两种方式声明数组:第一种,可以在元素类型后面接上[],表示由此类型元素组成的一个数组;第二种方式是使用数组泛型,Array<元素类型>。
let list1:number[]=[1,2,3];
let list2:Array<number>=[1,2,3];
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
let x:[string,number];
x = ['hello',10]//ok
x = [10,'hello']//error
enum类型是对JavaScript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字。
enum Color{Red,Green,Blue};
let c:Color = Color.Green;
有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。那么我们可以使用unknown类型来标记这些变量。
let notSure:unknown = 4;
notSure = 'maybe a string instead';
notSure = false;
当一个函数没有返回值时,你通常会见到其返回值类型是void。
function test():void{
console.log('This is function is void');
}
TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null。
let u:undefined = undefined;
let n:null = null;
联合类型(union types)表示取值可以为多种类型中的一种。
let myFavouriteNumber:string|number;
myFavouriteNumber = 'seven';
myFavouriteNumber = 7;
条件语句用于基于不同的条件来执行不同的动作。TypeScript条件语句是通过一条或多条语句的执行结果(true或false)来决定执行的代码块。
let num:number = 5;
if(num>0){
console.log('数字是正数');
}
let num:number = 12;
if(num%2==0){
console.log('偶数');
}else{
console.log('奇数');
}
let num:number = 5;
if(num>0){
console.log(num + '是正数');
}else if(num<0){
console.log(num + '是负数');
}else{
console.log(num + '为0');
}
除了可以通过if…else语句进行条件判断外,还可以通过switch…case语句进行条件判断。
一个switch语句允许测试一个变量等于多个值时的情况。每个值称为一个case,且被测试的变量会对每个switch case进行检查。
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; } }
函数是一组一起执行一个任务的语句,函数声明要告诉编译器函数的名称、返回类型和参数。TypeScript可以创建 有名字的函数 和 匿名函数,其创建方法如下:
//有名函数
function add(x,y){
return x+y;
}
//匿名函数
let myAdd = function(x,y){
return x+y;
};
为了确保输入输出的准确性,我们可以为上面那个函数添加类型
//有名函数:给变量设置为number类型
function add(x:number,y:number):number{
return x+y;
}
//匿名函数:给变量设置为number类型
let myAdd = function(x:number,y:number):number{
return x+y;
};
在TypeScript里我们可以在 参数名旁使用(?)实现可选参数的功能。比如,我们想让lastName是可选的:
function buildName(firstName:string,lastName?:string){
if(lastName){
return firstName + '' + lastName;
}else{
return firstName;
}
}
let result1 = buildName('Bob');
let result2 = buildName('Bob','Adams');
剩余参数会被当做 个数不限的可选参数。 可以一个都没有,同样也可以有任意个。 可以使用省略号( …)进行定义:
function getEmployeeName(firstName: string, ...restOfName: string[]) {
return firstName + ' ' + restOfName.join(' ');
}
let employeeName = getEmployeeName('Joseph', 'Samuel', 'Lucas', 'MacKinzie');
ES6版本的TypeScript提供了一个箭头函数,它是 定义匿名函数的简写语法,用于函数表达式,它省略了function关键字。箭头函数的定义如下,其函数是一个语句块:
### 总结
大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想着以后一定要去大厂,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。
**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**
(' ');
}
let employeeName = getEmployeeName('Joseph', 'Samuel', 'Lucas', 'MacKinzie');
ES6版本的TypeScript提供了一个箭头函数,它是 定义匿名函数的简写语法,用于函数表达式,它省略了function关键字。箭头函数的定义如下,其函数是一个语句块:
### 总结
大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想着以后一定要去大厂,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。
**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**
![](https://img-blog.csdnimg.cn/img_convert/718310d106ab948d6f467d78e08b1aed.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。