赞
踩
设计:设计的资源,需要来找
开发:开发应用
分发:发布
文档:开发查看的资料(指南,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<string>= [ ' 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))
// 注:文章为本人为督促自己学习而做的学习笔记,如有侵权,请联系我,我将在第一时间删除
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。