鸿蒙4.0用的编程语言是ArkTs。它是在TypeScript的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。
简单来说,TypeScript是JavaScript的超集,ArkTS则是TypeScript的超集。
1.TypeScript-基础类型
(1)布尔类型
let flag:boolean =false;
(2)数字类型
let a:number=123;
(3)字符串类型
let name:string=”张三”;
(4)数组类型
let arr1:number[]=[1,2,3];
let arr2:Array<number>=[1,2,3];
(5)元组
let x:[string,number]
x=[“name”:123]
(6)枚举
enum Week {一、二、三}
let w:Week=Week.一;
(7)Unknown
let data:nuknown=4
data=”张三”
unknow这个非常类似于ts中的any写法。
(8)void
主要用来修饰函数,表示没有返回值
function f():void{
}
(9)Null和Undefined
在ts中,null和undefined分别有自己的类型
let a:undefined=undefined
let b:null=null
(10)联合类型
实际开发中比较常见,一般是number和string,比如下面这样:
let xx:string|number;
xx="one";
xx=1;
2.TypeScript条件语句
这个部分很简单,有任何语言基础的都不用细看。
(1)if语句
let a:number=30
if(a>0){
console.log("哈哈");
}
(2)if…else语句
let a:number=8
if(a%2==0){
console.log("偶数")
}else{
console.log("奇数")
}
(3) if…else if…else
let a:number=8
if(a>1&&a<5){
console.log("1")
}else if(a>=5){
console.log("2")
}else {
console.log("3")
}
(4)switc…case
实际开发中一般不愿意用。功能跟上面的类似,看起来更有条理性。‘
let type:string='1';
switch(type){
case '1':{
console.log("级别1");
break;
}
case '2':{
console.log("级别2");
break;
}
default:{
console.log("非法")
break;
}
}
注意,有过语言基础的知道,如果不写break,后面的case条件都会依次成立,这样就失去了选择的作用了。
3.TypeScript函数
(1)有名函数
无指定类型
function fun(x,y){
return x-y;
}
有指定类型
function fun(x:number,y:number):number{
return x-y;
}
(2)匿名函数
无指定类型
let fun=function(x,y){
return x-y;
};
有指定类型
let fun=function(x:number,y:number):number{
return x-y;
};
(3)可选参数
我们可以用?来表示可选参数,比如下面这样:
function fun(x:string,y?:string){
if(y)
return x+y;
else
retrun 'hello'+x;
}
let res=fun('tom')
let res2=fun('tom','cat')
(4)剩余参数
剩余参数会被当做不限的可选参数,可以一个都没有,同样也可以任意个。可以用省略号进行定义。
function fun(first:string,...listData:string[]){
return first +''+listData.join('');
}
let pr=fun('A','B','C');
(5)箭头函数
箭头函数是定义匿名函数的简写语法,用于函数表达式,省略了function。基础定义如下:
([param1,param2,...paramn])=>{
}
也可以写成下面这样:
let fun=([param1,param2,...paramn])=>{
}
//调用方式如下
fun(param1,param2,...paramn)
4.TypeScript_类
我们可以定义一个students类。
class Students{
private name:string
private age:number
constructor(name:string,age:number){
this.name =name;
this.age=age;
}
}
定义后,我们可以调用这个类
let stu=new Students('tom',18);
5.TypeScript_继承
继承就是子类继承父类的特征和行为,使得和父类有相同的行为。
class tom extengs Students{
private chinese:number
constructor(name:string,age:number,chinese:number){
super(name,age);
this.chinese=chinese;
}
}
6.模块_导入与导出
//导出
export class A{
type:string;
constructor(type:string){
this.type=type
}
}
//导入
import {A} from ‘../A’;
7.迭代器
(1)for of语句
用来遍历对象。
let array=[1,'2',3];
for(let a of array){
(2) for…in
for…in 和for… of的区别是for…in 迭代的是对象的键,for…of是迭代对象的值。
let array=[1,'2',3];
for(let a in array){
console.log(a)
}