鸿蒙应用开发自学第一天

ArkTS(鸿蒙主力语言):在typeScript基础上扩展。

Javascript<typescript<Arkts

  1. 不二量(true):进行赋值,
    let isDone:Boolean = false;

  2. 数字(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);
  1. 字符串:可以放在“”或者‘’内:
let name:string=”jacky”
name =”tom”;
name =”mick”
  1. 数组声明:
Let list1:number[] = {1,2,3};
Let list2:Array<number>={1,2,3};
  1. 元组:
Let x:[string,number];
X=[‘hello’,10];
  1. 枚举:
enum Color{Red,Green,Blue};
let c:Color=Color.Green
  1. Unknow(为不确定变量指定一个类型):
let notSure:unkown = 4;
notSure=’maybe a string instead’;
notSure=false;
  1. Void
Function test():void{
  Console.log(‘This is function is void‘);
}
  1. Null和undefined
let u:undefined = undefined;
let u:null=null
  1. 联合类型(选其中一种):
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不惊醒返回

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值