HarmonyOS鸿蒙学习基础篇 - ArkTs介绍

概述

    ArkTS 是 Harmenyos优选的主力应用开发语言,它是一种基于TypeScript(简称TS)的应用开发语言,由华为开发。它在保持TS基本语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。同时,ArkTS提供了声明式UI、状态管理等相应的能力,让开发者可以以更简洁、更自然的方式开发高性能应用。ArkTS兼容JS/TS语言生态,并扩展了声明式UI语法和轻量化并发机制。它通过模板、样式、逻辑三段式来构建相应的应用UI界面,并结合相应的运行时实现了优化的运行体验。让开发者更简洁,更自然的方式开发跨端应用。

为了跟简单的了解什么事ArkTs,首先要清楚ArkTs、TypeScript、JavaScript之间有什么关系:

  1. JavaScript是一种高级脚本语言,被广泛应用于网页浏览器中,使网页可以响应用户行为。JavaScript可以直接在浏览器中运行,或通过服务器端运行以提供更复杂的功能。它支持面向对象和过程式的编程风格,并具有丰富的API和库,使开发者能够构建各种Web应用。
  2. TypeScript(简称TS)是一种由微软开发的开源编程语言,它是JavaScript的一个超集,旨在增强JavaScript的可读性和可维护性。TypeScript通过为JavaScript添加类型信息和其他高级功能,使开发人员能够更轻松地构建大型和复杂的应用程序。
  3. ArkTS是在TypeScript的基础上构建的,专门为开发跨端应用而设计。ArkTS继承了TypeScript的类型系统和语法,并添加了一些特定于跨端开发的功能和扩展。通过使用 ArkTS,开发者可以利用TypeScript的强大功能来构建跨平台的应用程序。

综上所述,JavaScript是基础,提供了运行时环境和基本的语法;TypeScript扩展了JavaScript的类型系统,提供了更好的开发体验和代码质量;ArkTS则进一步针对跨端开发进行了优化和扩展。

数据类型

     ArkTs是TypeScript的超集,其数据类型也是基于TypeScript而来,除了原始5种数据类型之外,还有一种对象类型,再结合ES6中的新类型Symbol和ES10中的新类型BigInt,以及包含常见的枚举、任意类型等等,大概有十多种,但常见常用的就那么几种:

numberstringbooleanobjectundefinednull

  1. number:ArkTS中的数字都是浮点数,支持十进制、二进制、八进制和十六进制。
  2. string:使用双引号或单引号表示字符串。
  3. boolean:用于标识true和false。
  4. object:在ArkTs中,不管你是一个普通的对象,还是一个数组,元组,集合等等,都是一个对象类型。
    4.1 普通对象

       和其他语言的声明及使用方式基本一致,可以对其变量私有,通过get/set方法进行获取,也有私有和公共关键字。
    4.2 数组
      可以存储多个值的数据结构。数组使用方括号[]进行定义,并支持通过索引访问和修改元素。与JavaScript中的数组类似,ArkTS中的数组也是动态的,可以存储不同类型的元素。此外,ArkTS还提供了丰富的数组操作函数和方法,如push、pop、shift、unshift、splice等,用于对数组进行操作。数组在ArkTS中是一种非常常用的数据结构,用于存储和处理大量数据。

    4.3 元组
         
    用于存储一系列有序的值。元组类似于数组,但有一些重要的区别。首先,元组是不可变的,这意味着一旦创建了一个元组,就不能更改其元素的值。其次,元组的创建使用圆括号而不是方括号。此外,元组主要用于函数返回多个值,或者在需要存储少量数据时使用。在ArkTS中,元组类型是Tuple<T1, T2, ...>,其中T1、T2等表示元组中的元素类型。使用元组可以方便地传递一组相关的值,并且可以更清晰地表达数据的结构。
    4.4 集合
         
    集合(Set)是一种数据结构,用于存储一组不重复的元素。集合类似于数组,但有几个重要的区别。首先,集合中的元素是唯一的,没有重复的值。其次,集合不支持索引访问,只能通过遍历来访问元素。此外,集合中的元素可以自动排序。在ArkTS中,可以使用Set<T>来定义一个集合,其中T表示集合中元素的类型。集合在ArkTS中是一种非常有用的数据结构,用于处理不重复的元素集合。
  5. undefined:当你定义了一个变量而为赋值时,那么它就是undefined。
  6. null:null是一个表示"空值"的对象,通常用来表示变量的值为“没有值”,如果需要明确表示一个变量的值为空,就可以使用 null。
     

数据类型汇总:

总结

      ArkTS是一种基于TypeScript的跨端应用开发语言,它在保持TypeScript的强大类型系统的基础上,针对跨端开发提供了丰富的功能和优化。

     关于 ArkTs介绍 本篇文章只是作为带大家有一个简单的了解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/417957.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大创项目推荐 深度学习花卉识别 - python 机器视觉 opencv

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &a…

CentOS 7安装Java并配置环境

一、安装Java环境 1、检查系统是否安装Java [rootlocalhost ~]# java -version 2、更新系统软件包 [rootlocalhost ~]# yum update #遇到[y/n],选择y并回车&#xff0c;耐心等待下载完毕&#xff0c;之后系统会自动检验更新的软件包遇到 /var/run/yum.pid 已被锁定 /var/…

我在人工智能技术方面的发展规划

人工智能(AI)是当今科技领域最具前景和影响力的技术之一,它已经渗透到各行各业,为社会和经济发展带来了巨大的机遇和挑战。作为一名从事人工智能研究和开发的专业人士,我有必要制定一个合理的人工智能技术发展规划,以指导我的学习和工作,提高我的专业水平和竞争力,为人…

C语言从入门到实战——编译和链接

编译和链接 前言一、 翻译环境和运行环境二、 翻译环境2.1 预处理&#xff08;预编译&#xff09;2.2 编译2.2.1 词法分析2.2.2 语法分析2.2.3 语义分析 2.3 汇编2.4 链接 三、 运行环境 前言 在C语言中&#xff0c;编译和链接是将源代码转换为可执行文件的两个主要步骤。 编…

线程状态转换

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;并发编程⛺️稳中求进&#xff0c;晒太阳 程状态转换 假设有线程Thread t 情况1 new-->RUNNABLE 当调用t.start()方法时&#xff0c;由new ->RUNNABLE 情况2 RUNNABLE WAITING t…

实验六 模式对象管理与安全管理

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的很重要&…

MySQL---单表查询综合练习

创建emp表 CREATE TABLE emp( empno INT(4) NOT NULL COMMENT 员工编号, ename VARCHAR(10) COMMENT 员工名字, job VARCHAR(10) COMMENT 职位, mgr INT(4) COMMENT 上司, hiredate DATE COMMENT 入职时间, sal INT(7) COMMENT 基本工资, comm INT(7) COMMENT 补贴, deptno INT…

软考系分之计算机网络通信方向、同步和交换

文章目录 1、概述2、通信方向和同步3、交换方式4、总结 1、概述 本篇依旧是一图概括主要考察的知识点&#xff0c;包括通信方向&#xff08;单工、半双工、全双工&#xff09;&#xff0c;同步方式和数据交换等。 2、通信方向和同步 通信方向&#xff08;单工、半双工、全双工…

[开发语言][c++]:Static关键字和全局变量

Static关键字和全局变量 1. 生命周期、作用域和初始化时机2. 全局变量3. Static 关键字3.1 面向过程3.1.1 静态全局变量3.1.2 静态局部变量&#xff08;单例中会使用&#xff09;3.1.3 静态函数 3.2 面向对象3.2.1 类内静态成员变量3.2.2 类内静态成员函数 Reference 写在前面&…

在微信公众号中加入ChatGPT聊天的方法

1 介绍 开源项目 "chatgpt-on-wechat" 支持通过微信公众号进行调用&#xff0c;这意味着用户可以在与公众号的交互中体验 ChatGPT。由于服务是部署在远端服务器上的&#xff0c;因此用户只需拥有一部手机&#xff0c;就可以在任何环境下与 ChatGPT 进行交流。例如&am…

排序算法9----计数排序(C)

计数排序是一种非比较排序&#xff0c;不比较大小 。 1、思想 计数排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用。 2、步骤 1、统计数据&#xff1a;统计每个数据出现了多少次。&#xff08;建立一个count数组&#xff0c;范围从[MIN,MAX],MAX代表arr中…

Unity-Arduino Bluetooth Plugin蓝牙插件使用时需要注意的一些事项(附插件下载链接)

一些参考链接 1.Android 无法扫描蓝牙设备踩坑 2.权限相关 1-首先要明确你的蓝牙设备是经典蓝牙还是低功耗&#xff08;BLE)蓝牙&#xff1a; 转载&#xff1a;Android蓝牙开发—经典蓝牙和BLE&#xff08;低功耗&#xff09;蓝牙的区别 2.如果是BLE蓝牙&#xff0c;需要打勾…