ArkTS(鸿蒙主力语言):在typeScript基础上扩展。
Javascript<typescript<Arkts
- 不二量(true):进行赋值,
let isDone:Boolean = false;
- 数字(number):
let decLiteral:number = 2003 console.log(‘decLiteral is’+decLiteral);
Let binaryLiteral:number=0b11111100111; console.log(‘decLiteral is’+ binaryLiteral);
let octalLiteral:number=0o3747; console.log(‘decLiteral is’+ octalLiteral);
let hexLiteral:number=0x7e7; console.log(‘decLiteral is’+ hexLiteral);
- 字符串:可以放在“”或者‘’内:
let name:string=”jacky”
name =”tom”;
name =”mick”
- 数组声明:
Let list1:number[] = {1,2,3};
Let list2:Array<number>={1,2,3};
- 元组:
Let x:[string,number];
X=[‘hello’,10];
- 枚举:
enum Color{Red,Green,Blue};
let c:Color=Color.Green
- Unknow(为不确定变量指定一个类型):
let notSure:unkown = 4;
notSure=’maybe a string instead’;
notSure=false;
- Void
Function test():void{
Console.log(‘This is function is void‘);
}
- Null和undefined
let u:undefined = undefined;
let u:null=null
- 联合类型(选其中一种):
let myFavoriteNumber:string|number
myFavoriteNumber=‘seven’;
myFavoriteNumber=7;
条件语句:
If语句
let num:number=5
If(num > 0){
Console.log(‘数字是正数’)
}
If…else…
let num:number = 12;
if(num % 2 ==0){
console.log(‘偶数’);
}else{
console.log(‘奇数’);
}
If…else if…else…语句:
let num:number = 0
if (num>0){
console.log(num+’是正数’);
}else if(num<0){
console.log(num+’是负数’);
}else{
console.log(num+’为0’)
}
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;
}
}
函数:
有名函数:
function add(x:number,y:number):number{
return x+y;
}
let myAdd = function(x:number,y:number):number{
return x+y;
};
函数的可选参数:
比如lastName可选(?);表示可选参数:
funtionbuildName(firstName:string,lastName?:string){
if(lastName){
return firstName+’’+lastName;
}else{
return firstName;
}
}
let result1 = buildName(‘B0b’);
let result2 = buildName(‘Bob’,’Adams’);
剩余参数(…);
function getEmployeeName(firstName:string,…restOfName:string[]){
return firstName+’’+restOfName.join(‘’);
}
let employeeName1 = getEmployeeName(‘tom’);
let employeeName2 = getEmployeeName(‘Tom’,’Sandy’,’Lucas’,’Mick’);
ES6版本箭头函数:
([param1,parma2,…param n])=>{
//代码块
}
let arrowFun = ([param1,param2,…param n])=>{
//代码块
}
常见函数方式换为箭头函数:
原函数:
function testNumber(num:number){
if(num>0){
console.log(num+’是正数’);
}else if(num<0){
console.log(num+’是负数’);
}else{
console.log(num+’为0’)
}
}
箭头函数:
let arrowFun = (num:number) => {
if (num>0){
console.log(num+’是正数’);
}else if(num<0){
console.log(num+’是负数’);
}else{
console.log(num+’为0’)
}
}
调用方式:
testNumber(1)
arrowFun(-1)
定义类:
class Person{
private name:string
private age:number
constructor(name:string,age:number){
this.name = name;
this.age = age;
}
Public getPersonInfo():string{
return ‘My name is ${this,name}and age is ${this.age}’;
}
}
let person = new person(‘Jacky’,18);
Person.getPersonInfo();
继承:
class Employee extends Person{
private department:string
constructor(name:string,age:number,department:string){
super(name,age);
this.department = department;
}
Public getEmployeeInfo():string{
return this.getPersonInfo()+’and work in ${this.department};’
}
}
let person2 = new Employee(‘Tom’,28,’HuaWei’);
Person2.getPersonInfo();
Person2.getEmployeeInfo();
模块:
export(在其他文件中应用这个类就要用export) class NewsData{
title:string;
content:string;
constructor(title:string,content:string){
this.title = title;
this.content = content;
}
}
导入这个类:
Import {NewsData}from’文件路径’
对象实现Symbol.iterator属性时可以使用迭代器,如array,map,set,string,int32array,uint32arry等
For..of语句
let somearray = [1,”string”,false];
for(let entry of someArray){
console.log(entry);
}
For..of vs. for..in 语句
let (let I in list){ //( for..in..语句打印的是数组的下标)
console..log(i);
}
for(lit I of list){
console.log(i);
}
案例分析:
@component
Struct ListItemComponent{
@State isChang:Boolean = false;
Build(){
Row(){
text(this.name)
.width(ItemStyle.LAYOUT_WEIGHT_CENTER)
.fontSize(FontSize.MIDDLE)
text(this.vote)
.width(ItemStyle.LAYOUT_WEIGHT_RIGHT)
.fontSize(FontSize.SMALL)
…
}
.height(ItemStyle.BAR_HEIGHT)
.width(WEIGHT)
.onClick(() => {
this.isChange = !this.isDhange;
})
}
}
…
@component装饰器:装饰类结构方法变量
@State装饰isChange,如果ischange发生改变会触组件,ListItemComponentUI界面自动更新
基本方法一个页面有且仅有一个@entry,entry父组件,entry是放大组件build时UI声明,
AboutToAppear()初始化aboutToDisappear()销毁时调用
打开应用是触发onPageShow()函数,home建回到桌面是触发onPageHide()函数,系统触发操作时触发onbackPress函数false有系统进行返回,true不惊醒返回