ArkTS基础
ArkTS是基于TypeScript扩展的编程语言,强化了静态检查和分析能力,提升代码健壮性和执行性能。它支持与TS/JS互操作,通过方舟编译器将代码编译为字节码文件执行。ArkTS的数据类型包括Number、String、Boolean等,并提供了类型转换方法。变量声明支持let、const和带装饰器的状态变量,具有块级作用域特性。调试时可通过console输出日志,但需注意第一个参数必须为字符
·
ArkTS在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析,提升代码健壮性,并实现更好的程序执行稳定性和性能。ArkTS同时也支持与TS/JavaScript(简称JS)高效互操作。
方舟编译运行时(ArkCompiler)支持ArkTS、TS、JS的编译运行,目前它主要分为ArkTS编译工具链和ArkTS运行时两部分。其中ArkTS编译工具链负责在开发侧将高级语言编译为方舟字节码文件(*.abc),而ArkTS运行时则负责在设备侧运行字节码文件执行程序逻辑。

ArkTS中如何写入JS语言
- 可以写在@Entry上面,import下面
console.log("hello world")
@Entry - 可以写在事件处理函数里
.onClick(()=>{
console.log("斯卡蒂")
this.message = '斯卡蒂'
}) - 可以写在别的页面,用import引入
import "../../tool/demo1"
ArkTS输出语句
- console.log()——输出普通日志
- console.worn()——输出警告日志
- console.error()——输出错误日志
在下方工具栏的日志选项查看
调试工具左侧一定要选择phone 否则看不到打印日志
不能直接打印数字,console.log()第一个打印的数据类型必须为字符串,可以在数字前面加一个空的字符串,console.log('',2)
ArkTS数据类型
- Number——数值
- 整数
- 浮点数
- 科学计数法
- e5 即10的5次方
- 其他进制
- 0b100——二进制
- 0o100——八进制
- 0x100——十六进制
- Infinity——无穷
- Infinity
- -Infinity
- 负无穷
- NaN
- Not a Number(非数字)
- String——字符串
- 所有被引号包裹的内容都是字符串,就是一个普通文本,没有任何意义
- 在JS内定义字符串可以使用
- 单引号('')
- 双引号("")
- 反引号(``)
- 模板字符串
- 键盘上的位置在TAP上方
- 模板字符串
- 模板字符串的特殊之处
- 可以换行书写内容
- 可以直接在字符串内解析变量
- 当你需要解析变量的时候,在字符串内使用 ${} 包裹变量即可
- Boolean——布尔
- true——表示真,在计算机内存储的时候按照 1 存储
- false——表示假,在计算机内存储的时候按照 0 存储
- Undefined——空
- 表示 没有
- 变量没有值的时候,叫做undefined
- 一个变量声明,但是未赋值 就是undefined
- 表示 没有
- Null——空
- 表示 有一个空
- 变量有一个值,但是这个值是一个空值
- 你需要给一个变量赋值为 null 才是 null
- 表示 有一个空
- symbol——ArkTS不支持
- object——对象类型
- bigint——大数字,后面带一个n
ArkTS数据类型转换
- 把其他数据类型转换成 数值类型
- Number()
- 强制转换,整理可以转化,就是数字
- 整体不能转换,就是NaN
- 语法:Number(你要转换的数据)
- 返回值(结果):转换好的数值类型数据
- 转换规则
- 把你要转换的内容当作一个整体
- 如果你可以转换成一个合法的数字,那么就是这个数字
- 如果你不可以转换成一个合法的数字,那么就是NaN
- 布尔 true 会转换成 1
- 布尔 false 会转换成 0
- parseInt()
- 一位一位转换
- 不会转换小数点及之后的数字
- 语法:parseInt(你要转换的数据)
- 返回值(结果):转换好的数值类型数据
- 转换规则
- 不管你要转换的是什么,都一位一位的转换
- 如果第一位就不能转换成合法数字,那么直接给出NaN,停止转换
- 如果第一位可以,那么保留,继续看第二位
- 以此类推,直到不能转换或者结束为止
- parseFloat()
- 一位一位转换
- 会转换小数点及之后的数字
- 语法:parseFloat(你要转换的数据)
- 返回值(结果):转换好的数值类型数据
- 转换规则
- 不管你要转换的是什么,都一位一位的转换
- 如果第一位就不能转换成合法数字,那么直接给出NaN,停止转换
- 如果第一位可以,那么保留,继续看第二位
- 以此类推,直到不能转换或者结束为止
- Number()
- 把其他数据类型转换成 字符串类型
- String()
- 什么数据类型都可以转换
- 语法:String(你要转换的数据)
- 返回值(结果):转换好的字符串类型数据
- 例
- res = String(n)
- toString()
- 要转换的数据 . toString()
- 返回值(结果):转换好的字符串类型数据
- 不能转换 undefined 和 null
- 例
- res = n . toString()
- 字符串拼接
- 使用 加号(+)运算符进行拼接
- String()
- 把其他数据类型转换成 布尔类型
- 只有5个内容是 False,其余内容转换成布尔型都为true
- 数值 0
- 空字符串 ' '
- 数值 NaN
- undefined
- null
- 语法:Boolean(你要转换的数据)
- 返回值:转换好的布尔型数据
- 只有5个内容是 False,其余内容转换成布尔型都为true
ArkTS变量声明及判断数据类型
声明方法
let声明(块级作用域变量)- 特性:声明块级作用域的变量,可被重新赋值,不能在同一作用域内重复声明。
const声明(常量)- 特性:声明块级作用域的常量,一旦赋值后不可重新赋值,声明时必须初始化。
- 组件状态变量声明(带装饰器)
- 在 ArkUI 组件中,使用状态装饰器(比如@State)声明的变量会与 UI 联动,当变量值变化时,UI 会自动更新。
变量类型
按作用域划分
- 全局变量
- 声明在@Entry上方,使用let关键字,全局生效
- 全局变量在整个项目中不允许重名
let m:number = 2;
let a1:number = 3;
let p:string ="hutao";
let c:boolean = false;
let d:null = null;
let e:undefined = undefined
@Entry
- 局部变量
- 声明在事件处理函数或者代码块里
- 只在该模块生效,不同模块可重名
Button('随机数').onClick((event: ClickEvent) => {
let n = 0
console.log("",n)
})
按可变性划分
- 可变变量
- 声明后可以被多次赋值修改的变量,通常用
let(ArkTS/JavaScript)、var(JavaScript)等关键字声明。
- 声明后可以被多次赋值修改的变量,通常用
- 不可变变量(常量)
- 声明时必须初始化,且赋值后不允许重新赋值的变量,通常用
const关键字声明。
- 声明时必须初始化,且赋值后不允许重新赋值的变量,通常用
状态变量
与 UI 联动的变量,值变化时会触发 UI 自动更新,通常用装饰器声明(如 @State、@Prop)。必须声明数据类型
判断数据类型
使用typeof 关键字 后面可不使用(),输出的结果为字符串类型
let temp = typeof null
console.log('打印:', temp) // object
console.log('打印:', typeof null) // object
console.log('打印:', typeof undefined) // undefined
console.log('打印:', typeof true) // bool
console.log('打印:', typeof 'sdfadf') // string
console.log('打印:', typeof 111) // number
更多推荐



所有评论(0)