鴻蒙語言基礎

準備工作

去鴻蒙官網下載開發環境

點擊右側預瀏覽,刷新和插銷按鈕,插銷表示熱更新,常用按鈕。

基礎語法

string number boolean const常量 數組

let s : string = "1111";
console.log("string", s);let n : number = 1;
console.log("number", n);let bool : boolean = true;const PI= "asdfasdf";
console.log(PI);let numbers = [1, 2, 3, 4, 5, 6];
console.log("arr", numbers);

接口

實現接口時,必須實現所有的屬性和方法

interface HI{a : string;b : number;c : boolean;sing : (song:string) => void;dance : ()=>void;
}let person: HI = {a : "123",b : 1,c : true,sing : (song:string)=>{console.log("唱首歌", song);},dance : ()=>{}
}
console.log("1", person.a, person.b, person.c);
person.sing("愛的供養");
function fun(){}

聯合類型

// 1
let judge : number | string  = 100;
judge = "A";// 2
let gender : 'man' | 'woman' = 'man';

枚舉類型

enum ThemeColor {Red = '#ff0f29',Orange = '#ff7110',Green = '#30b30e'
}
let color : ThemeColor = ThemeColor.Red;

字符串拼接

字符串+數字

數字+字符串

字符串+?字符串

只要一邊是字符串就是拼接。

模板字符串

``里面可以使用變量,方便多個字符串的拼接。

數字和字符串轉換

需要注意的是:

????????parseInt('1.1a') 直接取整,忽略0.1a

? ? ? ? parseFloat('1.1a') 1.1

????????parseFloat('1.a1') 1

? ? ? ? 也就是說,parseFloat在遇到非數字時就會截斷。

點擊事件

.onClick(),參數為一個回調函數
Button('按鈕').onClick(()=>{AlertDialog.show({message : '彈窗'})
})

狀態管理

注意:struct里的變量必須用this訪問且不能使用let定義。

小技巧:點擊預覽器上面的T標志,可以使用鼠標定位元素對應的代碼。

數組操作

添加:

????????arr.unshift(); //從開頭增加,返回操作后數組長度

????????arr.push(); //從結尾增加,返回操作后數組長度

刪除:

????????arr.shift(); //從開頭刪除,返回刪除的項

????????arr.poll(); //從結尾刪除,返回刪除的項

在指定位置增加/刪除n個元素:

????????arr.splce(起始位置, 刪除個數, 新增元素1, 新增元素2, ...);

if語句

小括號結果不是布爾類型時,會類型轉換為布爾值

if(0、空串、null和undefine)這幾種均視為false

其他非空值(如對象)均視為true,如空數組和空對象:if( [] )、if( {} )

for...of

對象數組

不能直接使用對象輸出,要使用JSON.stringify(對象);

interface Person {name : string,age : number
}
let arr : Person[] = [{name:"111",age: 1},{name:"222", age: 2}
]
console.log("", arr[1]); //[object Object]
for (let item of arr){console.log(JSON.stringify(item));
}

ForEach—— 渲染控制

注意使用ForEach時,item需要指定類型,index指不定都行,建議寫上。

class?

類是用于 創建對象 模板。同時類聲明也會引入一個 新類型,可定義其 實例屬性方法 構造函數

一般定義更加復雜的類型時就不適用接口了而使用Class。

1、實例屬性:在定義class時必須賦初值,或者使用可選鏈操作符 ?. 來定義屬性

2、不同實例,將來需要有不同的字段初始值,就需要通過構造函數實現

構造函數使用關鍵字:constructor 來定義,在new對象時調用。如果參數多可是傳一個對象,這樣可以自由順序賦值。

3、方法:方法的返回值可以寫在函數名之后,用冒號隔開,即:這個函數的類型時返回值類型的。

4、靜態屬性、方法:一般用作工具屬性方法,用類名直接調用。

interface IFood {name : string,price : number,desc : string
}class Food {// 1、屬性name : stringprice : numberdesc : stringa ?: number// 2、構造constructor(mesObj:IFood) {this.name = mesObj.namethis.price = mesObj.pricethis.desc = mesObj.desc}// 3、方法sayHi(name:string):void{console.log(this.name, name);}// 4、靜態屬性、方法static num:numberstatic func(){}
}

5、繼承extend和super關鍵字

類可以通過 繼承 快速獲取另外一個類的 字段 方法。只支持單一繼承。

子類通過 super 可以訪問父類的實例字段、實例方法和構造函數。

super.屬性

super.方法

super(1, 2)? //調用父類構造

6、instanceof 類型檢測

實例對象?instanceof 類型

typeof 表達式 : 只能檢測簡單類型,對象類型結果均為Object。

7、修飾符

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77394.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77394.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77394.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++數據結構與二叉樹詳解

前言: 在C編程的世界里,數據結構是構建高效程序的基石,而二叉樹則是其中最優雅且應用廣泛的數據結構之一。本文將帶你深入理解二叉樹的本質、實現與應用,助你在算法設計中游刃有余。 一、二叉樹的基本概念 1. 什么是二叉樹 二叉樹…

淺析數據庫面試問題

以下是關于數據庫的一些常見面試問題: 一、基礎問題 什么是數據庫? 數據庫是按照數據結構來組織、存儲和管理數據的倉庫。SQL 和 NoSQL 的區別是什么? SQL 是關系型數據庫,使用表結構存儲數據;NoSQL 是非關系型數據庫,支持多種數據模型(如文檔型、鍵值對型等)。什么是…

piamon實戰-- 如何使用 Paimon 的 Java API 實現數據的點查

簡介 Apache Paimon(原 Flink Table Store)是一款基于流批一體架構的 ??高性能數據湖存儲框架??,支持低延遲的數據更新、實時查詢和高效的鍵值點查(Point Lookup)。 本文將深入解析 Paimon 的點查機制,并通過 Java API 代碼案例演示如何實現數據的點查功能。 一、Pai…

社交媒體時代的隱私憂慮:聚焦Facebook

在數字化時代,社交媒體平臺已成為人們日常生活的重要組成部分。Facebook作為全球最大的社交媒體之一,擁有數十億用戶,其對個人隱私的影響和憂慮也日益凸顯。本文將探討社交媒體時代下,尤其是Facebook平臺上的隱私問題。 數據收集…

問題:el-tree點擊某節點的復選框由半選狀態更改為全選狀態以后,點擊該節點展開,懶加載出來子節點數據以后,該節點又變為半選狀態

具體問題場景: 用戶點擊父節點復選框將其從半選變為全選(此時子節點尚未加載)。 點擊節點展開觸發懶加載,加載子節點。 子節點加載后,組件重新計算父節點狀態,發現并非所有子節點被選中,因此父節…

FastGPT安裝前,系統環境準備工作?

1.啟用適用于 Linux 的 Windows 子系統 方法一:打開控制面板 -> 程序 -> 啟用或關閉Windows功能->勾選 “適用于Linux的Vindows子系統” 方法二:以管理員身份打開 PowerShell(“開始”菜單 >“PowerShell” >單擊右鍵 >“…

網頁端調用本地應用打開本地文件(PDF、Word、excel、PPT)

一、背景原因 根據瀏覽器的安全策略,在網頁端無法直接打開本地文件,所以需要開發者曲線救國。 二、實現步驟 前期準備: 確保已安裝好可以打開文件的應用軟件,如,WPS; 把要打開的文件統一放在一個文件夾&am…

EnlightenGAN:低照度圖像增強

簡介 簡介:記錄如何使用EnlightenGAN來做低照度圖像增強。該論文主要是提供了一個高效無監督的生成對抗網絡,通過全球局部歧視器結構,一種自我調節的感知損失融合,以及注意機制來得到無需匹配的圖像增強效果。 論文題目:EnlightenGAN: Deep Light Enhancement Without P…

010數論——算法備賽

數論 模運算 一般求余都是對正整數的操作&#xff0c;如果對負數&#xff0c;不同編程語言結果可能不同。 C/javapythona>m,0<a%m<m-1 a<m,a%ma~5%32~-5%3 -21(-5)%(-3) -2~5%(-3)2-1正數&#xff1a;&#xff08;ab&#xff09;%m((a%m)(b%m))%m~正數&#xff…

初識Redis · C++客戶端string

目錄 前言&#xff1a; string的API使用 set get&#xff1a; expire: NX XX: mset,mget&#xff1a; getrange setrange: incr decr 前言&#xff1a; 在前文&#xff0c;我們已經學習了Redis的定制化客戶端怎么來的&#xff0c;以及如何配置好Redis定制化客戶端&…

GoogleCodeUtil.java

Google動態驗證碼實現 GoogleCodeUtil.java package zwf;import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.security.SecureRandom;/** https://mvnrepository.com/artifact/commons-codec/…

【Leetcode 每日一題】2176. 統計數組中相等且可以被整除的數對

問題背景 給你一個下標從 0 0 0 開始長度為 n n n 的整數數組 n u m s nums nums 和一個整數 k k k&#xff0c;請你返回滿足 0 ≤ i < j < n 0 \le i < j < n 0≤i<j<n&#xff0c; n u m s [ i ] n u m s [ j ] nums[i] nums[j] nums[i]nums[j] 且…

如何校驗一個字符串是否是可以正確序列化的JSON字符串呢?

方法1&#xff1a;先給一個比較暴力的方法 try {JSONObject o new JSONObject(yourString); } catch (JSONException e) {LOGGER.error("No valid json"); } 方法2&#xff1a; Object json new cn.hutool.json.JSONTokener("[{\"name\":\"t…

【路由交換方向IE認證】BGP選路原則之AS-Path屬性

文章目錄 一、路由器BGP路由的處理過程控制平面和轉發平面選路工具 二、BGP的選路順序選路的前提選路順序 三、AS-Path屬性選路原則AS-Path屬性特性AS-Path管進還是管出呢&#xff1f;使用AS-Path對進本AS的路由進行選路驗證AS-Path不接收帶本AS號的路由 四、BGP鄰居建立配置 一…

2025年熱門項目管理軟件對比:20款工具詳解

本文主要盤點的工具有&#xff1a;1. PingCode; 2. Worktile; 3. Jira; 4. Trello; 5. TAPD; 6. Monday.com; 7. 進度貓; 8. 豬齒魚; 9. 簡道云; 10. Tita項目管理等等20款項目管理軟件&#xff08;含免費&#xff09;。 在如今競爭激烈的商業環境中&#xff0c;項目管理軟件已…

yaffs_write_new_chunk()函數解析

yaffs_write_new_chunk() 是 YAFFS&#xff08;Yet Another Flash File System&#xff09;文件系統中用于將數據寫入新物理塊&#xff08;chunk&#xff09;的關鍵函數。以下是其詳細解析&#xff1a; 函數原型 int yaffs_write_new_chunk(struct yaffs_dev *dev, const u8 *…

網絡安全-Burp Suite基礎篇

聲明 本文主要用做技術分享&#xff0c;所有內容僅供參考。任何使用或者依賴于本文信息所造成的法律后果均與本人無關。請讀者自行判斷風險&#xff0c;并遵循相關法律法規。 1 Burp Suite功能介紹 1.1 Burp Suite 簡介 Burp Suite 是一款極為強大且廣受歡迎的集成化 …

網絡編程 - 2

目錄 UDP 數據報套接字編程 API 介紹 DatagramSocket DatagramPacket 補充&#xff1a; 代碼示例 - 回顯服務器 服務器端&#xff1a; 客戶端&#xff1a; 補充&#xff1a; 代碼演示 梳理代碼&#xff1a; 下面是一個大概的流程圖~ 文字解釋&#xff1a; 圖文并…

【C++深入系列】:模版詳解(上)

&#x1f525; 本文專欄&#xff1a;c &#x1f338;作者主頁&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客勵志語錄&#xff1a; 你不需要很厲害才能開始&#xff0c;但你需要開始才能很厲害。 ★★★ 本文前置知識&#xff1a; 類和對象&#xff08;上&#xff09; …

java 設計模式之策略模式

簡介 策略模式&#xff1a;策略模式可以定制目標對象的行為&#xff0c;它通過傳入不同的策略實現&#xff0c;來配置目標對象的行為。使用策略模式&#xff0c;就是為了定制目標對象在某個關鍵點的行為。 策略模式中的角色&#xff1a; 上下文類&#xff1a;持有一個策略類…