ArkTS在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析,提升代码健壮性,并实现更好的程序执行稳定性和性能。ArkTS同时也支持与TS/JavaScript(简称JS)高效互操作。

方舟编译运行时(ArkCompiler)支持ArkTS、TS、JS的编译运行,目前它主要分为ArkTS编译工具链和ArkTS运行时两部分。其中ArkTS编译工具链负责在开发侧将高级语言编译为方舟字节码文件(*.abc),而ArkTS运行时则负责在设备侧运行字节码文件执行程序逻辑。

ArkTS中如何写入JS语言

  1. 可以写在@Entry上面,import下面
    console.log("hello world")
    @Entry
  2. 可以写在事件处理函数里
    .onClick(()=>{
    console.log("斯卡蒂")
    this.message = '斯卡蒂'
    })
  3. 可以写在别的页面,用import引入
    import "../../tool/demo1"

ArkTS输出语句

  1. console.log()——输出普通日志
  2. console.worn()——输出警告日志
  3. console.error()——输出错误日志

在下方工具栏的日志选项查看
调试工具左侧一定要选择phone 否则看不到打印日志
不能直接打印数字,console.log()第一个打印的数据类型必须为字符串,可以在数字前面加一个空的字符串,console.log('',2)

ArkTS数据类型

  1. Number——数值
    1. 整数
    2. 浮点数
    3. 科学计数法
      • e5 即10的5次方
    4. 其他进制
      • 0b100——二进制
      • 0o100——八进制
      • 0x100——十六进制
      • Infinity——无穷
        • Infinity
        • -Infinity
          • 负无穷
      • NaN
        • Not a Number(非数字)
  2. String——字符串
    • 所有被引号包裹的内容都是字符串,就是一个普通文本,没有任何意义
    • 在JS内定义字符串可以使用
      • 单引号('')
      • 双引号("")
      • 反引号(``)
        • 模板字符串
          • 键盘上的位置在TAP上方
    • 模板字符串的特殊之处
      • 可以换行书写内容
      • 可以直接在字符串内解析变量
        • 当你需要解析变量的时候,在字符串内使用 ${} 包裹变量即可
  3. Boolean——布尔
    • true——表示真,在计算机内存储的时候按照 1 存储
    • false——表示假,在计算机内存储的时候按照 0 存储
  4. Undefined——空
    • 表示 没有
      • 变量没有值的时候,叫做undefined
    • 一个变量声明,但是未赋值 就是undefined
  5. Null——空
    • 表示 有一个空
      • 变量有一个值,但是这个值是一个空值
      • 你需要给一个变量赋值为 null 才是 null
  6. symbol——ArkTS不支持
  7. object——对象类型
  8. bigint——大数字,后面带一个n

ArkTS数据类型转换

  1. 把其他数据类型转换成 数值类型
    1. Number()
      1. 强制转换,整理可以转化,就是数字
      2. 整体不能转换,就是NaN
      3. 语法:Number(你要转换的数据)
      4. 返回值(结果):转换好的数值类型数据
      5. 转换规则
        1. 把你要转换的内容当作一个整体
        2. 如果你可以转换成一个合法的数字,那么就是这个数字
        3. 如果你不可以转换成一个合法的数字,那么就是NaN
        4. 布尔 true 会转换成 1
        5. 布尔 false 会转换成 0
    2. parseInt()
      1. 一位一位转换
      2. 不会转换小数点及之后的数字
      3. 语法:parseInt(你要转换的数据)
      4. 返回值(结果):转换好的数值类型数据
      5. 转换规则
        1. 不管你要转换的是什么,都一位一位的转换
        2. 如果第一位就不能转换成合法数字,那么直接给出NaN,停止转换
        3. 如果第一位可以,那么保留,继续看第二位
        4. 以此类推,直到不能转换或者结束为止
    3. parseFloat()
      1. 一位一位转换
      2. 会转换小数点及之后的数字
      3. 语法:parseFloat(你要转换的数据)
      4. 返回值(结果):转换好的数值类型数据
      5. 转换规则
        1. 不管你要转换的是什么,都一位一位的转换
        2. 如果第一位就不能转换成合法数字,那么直接给出NaN,停止转换
        3. 如果第一位可以,那么保留,继续看第二位
        4. 以此类推,直到不能转换或者结束为止
  2. 把其他数据类型转换成 字符串类型
    1. String()
      1. 什么数据类型都可以转换
      2. 语法:String(你要转换的数据)
      3. 返回值(结果):转换好的字符串类型数据
        • res = String(n)
    2. toString()
      1. 要转换的数据 . toString()
      2. 返回值(结果):转换好的字符串类型数据
      3. 不能转换 undefined 和 null
        • res = n . toString()
    3. 字符串拼接
      1. 使用 加号(+)运算符进行拼接
  3. 把其他数据类型转换成 布尔类型
    • 只有5个内容是 False,其余内容转换成布尔型都为true
      • 数值 0
      • 空字符串 ' '
      • 数值 NaN
      • undefined
      • null
    • 语法:Boolean(你要转换的数据)
    • 返回值:转换好的布尔型数据

ArkTS变量声明及判断数据类型

声明方法

  1. let 声明(块级作用域变量)
    • 特性:声明块级作用域的变量,可被重新赋值,不能在同一作用域内重复声明。
  2. const 声明(常量)
    • 特性:声明块级作用域的常量,一旦赋值后不可重新赋值,声明时必须初始化。
  3. 组件状态变量声明(带装饰器)
    • 在 ArkUI 组件中,使用状态装饰器(比如@State)声明的变量会与 UI 联动,当变量值变化时,UI 会自动更新。

变量类型

按作用域划分

  1. 全局变量
    • 声明在@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
  2. 局部变量
    • 声明在事件处理函数或者代码块里
    • 只在该模块生效,不同模块可重名
    • Button('随机数').onClick((event: ClickEvent) => {
      let n = 0
      console.log("",n)
      })

按可变性划分

  1. 可变变量
    • 声明后可以被多次赋值修改的变量,通常用let(ArkTS/JavaScript)、var(JavaScript)等关键字声明。
  2. 不可变变量(常量)
    • 声明时必须初始化,且赋值后不允许重新赋值的变量,通常用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

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新

更多推荐