设计:设计的资源,需要来找
开发:开发应用
分发:发布
文档:开发查看的资料(指南,API文档)
利用网页技术开发:
CSS语言控制布局与样式
HTML控制页面元素
JS控制页面逻辑和数据状态
ArkTS = CSS+HTML+JS
ArkTS(声明式UI、状态管理……)基于TypeScript(静态类型定义),基于JS
声明式UI:需要什么就声明什么
let msg: string = "hello world"
(let 代表变量(const 代表常量)、msg 代表名称、 string 数据变量的类型)
支持的变量类型:
//string:字符串,可以用单引号或双引号
let msg: string = 'hello world'
//number:数值,整数、浮点数都可以
let age: number = 21
// boolean:布尔
let finished: boolean = true
// any:不确定类型,可以是任意类型
let a: any = 'jack'
a = 21
//union:联合类型,可以是多个指定类型中的一种
let u: string| number | boolean = 'rose'
u = 18
//object:对象
let p = {name: 'Jack ', age: 21]
console.log(p.name)
console.log(p[ 'name '])
//Array:数组,元素可以是任意其它类型
let names: Array= [ ' Jack' , 'Rose ']
let ages: number[] = [2r,18]
console.log(names[0])
//定义数字
let num: number = 21
//判断是否是偶数
if(num%2 === 0)
{
console.log(num+'是偶数')
}
else
{
console.log(num+'是奇数')
}
//判断是否是正数
if(num >0 )
{
console.log(num+'是正数')
}
else if (num < 0)
{
console.log(num+'是负数')
}
else
{
console.log(num+'为0')
}
//注意:在TupeScript中·空字符串·数字0、null、undefined都被认为是false,其它值则为true
let grade: string = 'A'
switch(grade)
{
case 'A':{
console.log('优秀')
break
}
case 'B':{
console.log('合格')
break
}
case 'C':{
console.log('不合格')
break
}
default:{
console.log('非法输入')
break
}
}
TypeScript支持for和while循环,并且为一些内置类型如Array等提供了快捷迭代语法。
//普通for
for(let i = l; i <= 10; i++){
console.log('点赞'+i+'次')
}
// while
let i = 1;
while(i <= 10){
console.log('点赞'+i+'次')
i++;
}
//定义数组
let names: string[] = [ ' Jack ', 'Rose ']
// for in 迭代器,遍历得到数组角标
for (const i in names)
{
console.log (i + ':' + names[i])
}
// for of 迭代器,直接得到元素
for (const name of names)
{
console.log(name)
}
TypeScript通常利用function关键字声明函数,并且支持可选参数、默认参数、箭头函数等特殊语法。
//无返回值函数,返回值void可以省略
function sayHello(name: string): void{
console.log('你好,' + name + '!')
}
sayHello( 'Jack ')
//有返回值国数
function sum(x : number, y: number): number {
return x +y
}
let result = sum(21,18)
console.log( '21 +18 =' +result)
//箭头函数
let sayHi = (name : string) =>{
console.log('你好,' + name + '!')
}
sayHi( 'Rose ')
//可选参数,在参数名后加?,表示该参数是可选的
function sayHello(name? : string){
//判断name是否有值,如果无值则给一个默认值
name = name ? name :'陌生人'
console.log('你好,' + name + '!')
}
sayHello('Jack')
sayHello()
// 参数默认值,在传参后面赋值,表示参数默认值
// 如果调用者没有传参,则使用默认值
function sayHello(name: string ='陌生人')
{
console.log('你好,' + name + '!')
}
sayHello('Jack')
sayHello()
TypeScript具备面向对象编程的基本语法,例如interface、class、enum等。也具备封装、
继承、多态等面向对象基本特征。
//定义枚举 就类似于C语言的结构体
enum Msg{
HI='Hi',
HELLO = 'Hello'
}
//定义接口,抽象方法接收枚举参数 定义方法的声明
interface A {
say (msg: Msg) :void // 定义规则,方法
}
//实现接口 B实现了A接口 实现方法
class B implements A{
say (msg: Msg): void {
console.log(msg + ', I am B ')
}
}
//初始化对象
let a:A=new B()
//调用方法,传递枚举参数
a.say(Msg.HI)
//定义矩形类
class Rectangle {
//成员变量
private width: number
private length: number
//构造函数
constructor(width : number, length: number)
this.width = width
this.length = length
}
//成员方法
public area() : number{
return this.width * this.length
}
}
//定义正方形
class Square extends Rectangle{
constructor(side: number) {
//调用父类构造
super(side,side)
}
}
let s = new Square(10)
console.log('正方形面积为:' + s.area()
// 理解:将10这个数传进Square这个类里面,给这里面的构造方法side参数,side参数通过调用Square的父类Rectangle中的构造将其传给width,length参数。当对对象s调用方法,area方法时也就实现了面积的计算
应用复杂时,我们可以把通用功能抽取到单独的ts文件中,每个文件都是一个模块(module)。模块可以相互加载,提高代码复用性。
//定义矩形类,并通过export导出
export class Rectangle {
//成员变量
public width: number
public length: number
//构造函数
constructor(width: number, length : number) {
this. width = width
this.length = length
}
}
//定义工具方法,求短形面积,并通过export导出
export function area(rec: Rectangle) : number{
return rec.width * rec.length
}
// 这个Rectangle类 ,上一个板块的区别:成员变量是公有的成员变量;方法的定义,以及变量的引用也有区别
//通过import语法导入,from后面写文件的地址
import {Rectangle, area} from '../rectangle'
//创建Rectangle对象
let r = new Rectangle(10,20)
//调用area方法
console.log('面积为:' + area(r))
// 注:文章为本人为督促自己学习而做的学习笔记,如有侵权,请联系我,我将在第一时间删除