ArkTS
数据类型
number、string、boolean
变量、常量
//let 变量名:类型 = 值 //const 常量名:类型 = 值 let age: number = 100 console.log('年龄为:',age) //100
命名规则
1.只能包含数字、字母、下划线、$,不能以数字开头
2.不能使用内置关键字或保留字 (比如 let、const)
3.严格区分大小写
运算符
算数 | + 、-、*、/、% | |
赋值 | +=、-=、*=、/=、%= | |
一元 | 前置/后置++、– | |
三元 | 条件 ?返回值1 :返回值2 | |
比较 | >、>=、<、<=、==、!=、=== | 返回布尔值,三等严格数值和类型相等 |
逻辑 | &&、||、! | 返回布尔值 |
运算符优先级
数组及其操作
声明格式
let 数组名:类型[ ] = [数据1,数据2………]
let names: string[] = ['a','b','c'] console.log(names.toString()) //abc console.log(names[0]) //a console.log('',names.length) //3 names.push('d') //a b c d names.unshift('A') // A a b c d names.pop() //A a b c names.shift() //a b c names.splice(1,2) // a names.splice(0,1,'b','c','d') // b c d
语句
if-else、switch、while、for、for-of、continue,break
//1.if分支语句 if(逻辑条件1){ //条件1成立的执行代码 } else if (逻辑条件2){ //条件2成立的执行代码 } else{ //条件不成立的执行代码 } //2.switch分支语句 switch(表达式){ case 值1: //执行代码 break case 值2: //执行代码 break default: //以上都为成功匹配执行的代码 } //3.while循环语句 while(条件){ //条件成功执行代码 } //4.for循环语句 for(let i:number = 1;i<10;i++){ //执行代码 } //5.for-of 遍历数组 类似for in (python) for(let 存储变量 of 数组){ console.log('',存储变量) } //6.退出语句
函数
1.函数声明和使用
function 函数名(){ //定义无参函数 //函数体 } 函数名() //调用函数 function fn(形参1:类型,a:number){ //定义有参函数 //函数体...... let result:number = a+1 return result } let x: number = fn(实参1,100) console.log(x) //101
2.箭头函数
lambda表达式 简化函数声明,通常用于需要一个简单函数的地方
(参数列表):返回类型 =>{函数体}
let happy = () =>{ console.log('i am happy') } happy() //i am happy let buy = (price:number,weight:number) =>{ let result:number = price*weight return result } let apple:number = buy(2,3) console.log('价格:',apple) //6
3.闭包函数
一个函数可以将另一个函数当做返回值,保留对内部作用域访问
function outerFunc():()=>{ let count = 0 return ():string=>{ count++; return count.toString() } } let invoker = outerFunc() comsole.log(invoker())//1 comsole.log(invoker())//2
对象
作用:用于描述一个物体的特征和行为
对象:是一个可以存储多个不同类型数据的容器
interface Person{ //通过接口约定对象结构 name:string age:number ismarry:boolean } let p1: Person = { name:'小明', age: 6, ismarry: false } console.log(p1.name) //小明 console.log(p1.age) //6 console.log(p1.ismarry) //false
对象方法
interface Person{ //通过接口约定对象结构 name:string age:number ismarry:boolean //定义方法的类型 sleep:()=> void work:(what:string)=> void } let p1: Person = { name:'小明', age: 6, ismarry: false, // sleep: ()=> { console.log('现在是小明的睡觉时间') }, work:(what:string)=>{ console.log('现在是小明的',what,'时间') } } p1.sleep() //现在是小明的睡觉时间 p1.work('写作业') //现在是小明的写作业时间
数组对象
let peopleArr: Person[] = [{...},{},{}......] console.log(JSON.stringify(peopleArr)) console.log(JSON.stringify(peopleArr[1])) //通过for of也可以进行遍历
联合类型Union
联合类型是一种灵活的数据类型,它修饰的变量可以存储不同类型的数据
语法:let 变量名:类型1 | 类型2 | 类型3 = 值
class Cat { // ... } class Dog { // ... } class Frog { // ... } type Animal = Cat | Dog | Frog | number // Cat、Dog、Frog是一些类型(类或接口) let animal: Animal = new Cat(); animal = new Frog(); animal = 42; // 可以将类型为联合类型的变量赋值为任何组成类型的有效值
枚举类型Enum
枚举类型是一种特殊的数据类型,约定变量只能在一组数据范围内选择值
使用枚举常量时必须以枚举类型名称为前缀。
enum ColorSet { Red, Green, Blue } let c: ColorSet = ColorSet.Red;
常量表达式可以用于显式设置枚举常量的值。
enum ColorSet { White = '0xFF', Grey = '0x7F', Black = '0x00' } let c: ColorSet = ColorSet.Black; console.log(c)
类型转换
1.字符串转数字
Number(num)、parseInt()、parseFloat()
无效时输出NaN
2.数字转字符串
num.toString()
num.toFixed():四舍五入转字符串,可设置保留几位小数
点击事件
说明:组件 被点击时 触发的事件
作用:监听(感知)用户 点击行为,进行对应操作
语法:onclick( (参数) => {})