日志打印
console.log('说明','值')
数据存储(变量、常量)
string
字符串:描述信息
number
数字:计算
boolean
布尔:判断(真、假)
变量
变量:专门用来存储数据的容器
let 变量名:类型 = 值
let title:string = '苹果'
let price:number = 18
console.log('名称:',title,'价格:',price) //名称: 苹果 价格: 18
// 变量修改
title = '橘子'
console.log('名称:',title,'价格:',price) //名称: 橘子 价格: 18
常量
常量:用来存储不可变数据
const 常量名:类型 = 值
const PI:number = 3.1415926
const companyName:string = '华为科技有限公司'
变量命名规则
- 只能包含数字、字母、下划线、$ (不能以数字开头)
- 不能使用内置关键字
- 严格区分大小写 (推荐使用小驼峰)
数组
数组:是一个容器,可以存储多个数据
let 数组名:类型[] = [数据1,数据2,...]
let names:string[] = ['张三','李四','王五']
console.log('名字',names) // 名字 张三,李四,王五
console.log('名字',names[1]) // 名字 李四
数组索引(下标,编号),从0开始。(不支持负数表示)
快速生成长度为10的测试数组
Array.from({length:10})
数组的比较
[ ] === [ ] 两个都是空数组,对比的结果也不一样
数组属于对象
对象之间比较的是内存地址
所以可以把它转换为字符串再比较,(加 .toString())
if(this.list.toString() === input.toString()){
}
list.some(v=> v === ture)
查找里面的值,有没有为ture的,有一项满足,就为ture
函数
函数:可以被重复使用的代码块
// 定义函数
function 函数名(){
函数体
}
// 使用函数
函数名()
带参数的函数
// 定义函数
function 函数名(形参1:类型,形参2:类型,...){
编写代码对数据进行处理
return 处理后的结果
}
// 使用函数
let 变量名:类型 = 函数名(实参1,实参2,...)
箭头函数
箭头函数:是比普通函数更简洁的一种函数写法
let 函数名 = (形参1:类型,形参2:类型)=>{
函数体
return 计算的结果
}
函数名(实参1,实参2)
对比
function aa(d:number,c:number){
return d+c
}
let b:number = aa(1,3)
console.log('结果',b)
let aa = (d:number,c:number)=>{
return d+c
}
let b:number = aa(1,3)
console.log('结果',b)
对象 - 接口
作用:用来描述一个物体的特征和行为
对象:是一个可以存储多个数据的容器
数组只能存储同一类型的值,对象可以存储不同类型的值
let 对象名称:对象结构类型 = {属性名称:值}
interface 接口名 {
属性1:类型1
属性2:类型2
属性3:类型3
}
// 定义接口
interface Person {
name:string
age:number
weight:number
}
Person:人 / weight:体重
// 定义对象
let p:person = {
name:'刘基咪',
age:18,
weight:90,
}
注意:定义对象的时候需要逗号分隔,定义接口不需要
先定义接口,再定义对象,是基于接口定义对象
访问对象
对象名.属性名
// 获取对象的属性值 对象名.属性名
console.log('结果',p.name)
对象-方法
方法的作用:描述对象的具体行为
interface 接口名称 {
方法名:(参数:类型) => 返回值类型
}
interface Person{
name:string
dance:()=>void
sing:(song:string)=>void
}
// 调用
let yqd:Person = {
name:'余承东',
dance:()=>{
console.log(yqd.name,'我叫刘承东')
},
sing:(song:string)=>{
console.log('刘强东说','我叫余强东',song)
}
}
yqd.dance()
yqd.sing('我是家里的顶梁柱')
联合类型
联合类型是一种灵活的数据类型,它修饰的变量可以存储不同类型的数据
let 变量:类型1 | 类型2 | 类型3 = 值
| 可以理解成或的意思
let judge:number|string = 100
judge = 'A+'
judge = '优秀'
联合类型还可以将变量值,从给出的指定值里面选择(比如性别:男,女,保密)
let gender:'man'|'woman'|'secret' = 'secret'
枚举
枚举类型是一种特殊的数据类型,约定变量只能在一组数据范围内选择值
// 定义枚举类型(常量列表)
enum 枚举名 {
常量1 = 值,
常量2 = 值,
...
}
enum ThemeColor{
Red = '#ff0f29',
Orange = '#ff7100',
Green = '#30b30e'
}
// 使用枚举类型,约束变量
let color:ThemeColor = ThemeColor.Red
console.log('颜色',color)
枚举和联合类型的区别
枚举是一种键值对方式存储多个值,联合类型是一个值,可以有多种类型
弹层
import {MyDialog} from './MyDialog'
@Entry
@Component
struct DemoIndex {
// 注册弹层
myDialogController: CustomDialogController = new CustomDialogController({
// 自定义构建
builder: MyDialog(),
// 使用自定义样式
customStyle: true,
// 弹窗从底部开始显示
alignment:DialogAlignment.Bottom
})
build() {
Column() {
Button('打开')
.onClick(() => {
this.myDialogController.open()
})
}
}
}
@CustomDialog
struct MyDialog{
controller:CustomDialogController
build() {
Column(){
Text('我是弹窗')
}
}
}
export {MyDialog}
编辑器(快捷方式)
生成页面(方法一)
@Entry
@Component
struct demo {
build() {
}
}
resources > base > profile > main_pages.json
创建页面会在main-page.json5形成路由,有映射关系,如果删除页面,建议删除对应关系,否则报错
生成页面(方法二)
先新建一个普通文件 ArkTS File,然后再在页面输入entry
使用这种方法添加的页面,不会在main_pages.json
文件中添加路由
实时模板
变量名 变量名 变量名 可以随便取,这里表示的是,这里放一个变量(需要编辑)光标放在这里
variable 就是变量的意思
还可以在编辑变量里面设置变量的默认值
注解
/**
* 检测是否授权
* @param permissionName 权限名称
* @returns -1未授权(abilityAccessCtrl.GrantStatus.PERMISSION_DENIED),0授权了
*/
async checkAccessToken(permissionName:Permissions) {
调用这个方法,鼠标悬停的效果
params:参数的描述,需要先写对应的参数,在参数后面写描述
returns:返回值的描述