RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙TypeScript入門(mén)學(xué)習(xí)第4天:【TS變量聲明】

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-29 14:49 ? 次閱讀

1、TypeScript 變量聲明

變量是一種使用方便的占位符,用于引用計(jì)算機(jī)內(nèi)存地址。

我們可以把變量看做存儲(chǔ)數(shù)據(jù)的容器。

TypeScript 變量的命名規(guī)則:

  • 變量名稱(chēng)可以包含數(shù)字和字母。
  • 除了下劃線 _ 和美元 $ 符號(hào)外,不能包含其他特殊字符,包括空格。
  • 變量名不能以數(shù)字開(kāi)頭。

變量使用前必須先聲明,我們可以使用 var 來(lái)聲明變量。

我們可以使用以下四種方式來(lái)聲明變量:

聲明變量的類(lèi)型及初始值:

var [變量名] : [類(lèi)型] = 值;復(fù)制

例如:

var uname:string = "Runoob";復(fù)制

聲明變量的類(lèi)型,但沒(méi)有初始值,變量值會(huì)設(shè)置為 undefined:

var [變量名] : [類(lèi)型];復(fù)制

例如:

var uname:string;復(fù)制

聲明變量并初始值,但不設(shè)置類(lèi)型,該變量可以是任意類(lèi)型:

var [變量名] = 值;復(fù)制

例如:

var uname = "Runoob";復(fù)制

聲明變量沒(méi)有設(shè)置類(lèi)型和初始值,類(lèi)型可以是任意類(lèi)型,默認(rèn)初始值為 undefined:

var [變量名];復(fù)制

例如:

var uname;復(fù)制

實(shí)例

var uname:string = "Runoob";

var score1:number = 50;

var score2:number = 42.50

var sum = score1 + score2

console.log("名字: "+uname)

console.log("第一個(gè)科目成績(jī): "+score1)

console.log("第二個(gè)科目成績(jī): "+score2)

console.log("總成績(jī): "+sum)復(fù)制

注意: 變量不要使用 name 否則會(huì)與 DOM 中的全局 window 對(duì)象下的 name 屬性出現(xiàn)了重名。

使用 tsc 命令編譯以上代碼,得到如下 JavaScript 代碼:

var uname = "Runoob"; var score1 = 50; var score2 = 42.50; var sum = score1 + score2; console.log("名字: " + uname); console.log("第一個(gè)科目成績(jī): " + score1); console.log("第二個(gè)科目成績(jī): " + score2); console.log("總成績(jī): " + sum);

執(zhí)行該 JavaScript 代碼輸出結(jié)果為:

名字: Runoob
第一個(gè)科目成績(jī): 50
第二個(gè)科目成績(jī): 42.5
總成績(jī): 92.5

TypeScript 遵循強(qiáng)類(lèi)型,如果將不同的類(lèi)型賦值給變量會(huì)編譯錯(cuò)誤,如下實(shí)例:

var num:number = "hello"     // 這個(gè)代碼會(huì)編譯錯(cuò)誤

2、類(lèi)型斷言(Type Assertion)

類(lèi)型斷言可以用來(lái)手動(dòng)指定一個(gè)值的類(lèi)型,即允許變量從一種類(lèi)型更改為另一種類(lèi)型。

語(yǔ)法格式:

< 類(lèi)型 >值
或:

值 as 類(lèi)型

實(shí)例

var str = '1' var str2:number = < number > < any > str //str、str2 是 string 類(lèi)型 console.log(str2)復(fù)制

3、TypeScript 是怎么確定單個(gè)斷言是否足夠

當(dāng) S 類(lèi)型是 T 類(lèi)型的子集,或者 T 類(lèi)型是 S 類(lèi)型的子集時(shí),S 能被成功斷言成 T。這是為了在進(jìn)行類(lèi)型斷言時(shí)提供額外的安全性,完全毫無(wú)根據(jù)的斷言是危險(xiǎn)的,如果你想這么做,你可以使用 any。

它之所以不被稱(chēng)為 類(lèi)型轉(zhuǎn)換 ,是因?yàn)檗D(zhuǎn)換通常意味著某種運(yùn)行時(shí)的支持。但是,類(lèi)型斷言純粹是一個(gè)編譯時(shí)語(yǔ)法,同時(shí),它也是一種為編譯器提供關(guān)于如何分析代碼的方法。

編譯后,以上代碼會(huì)生成如下 JavaScript 代碼:

var str = '1'; var str2 = str; //str、str2 是 string 類(lèi)型 console.log(str2);

執(zhí)行輸出結(jié)果為:

1

4、類(lèi)型推斷

當(dāng)類(lèi)型沒(méi)有給出時(shí),TypeScript 編譯器利用類(lèi)型推斷來(lái)推斷類(lèi)型。

如果由于缺乏聲明而不能推斷出類(lèi)型,那么它的類(lèi)型被視作默認(rèn)的動(dòng)態(tài) any 類(lèi)型。

var num = 2; // 類(lèi)型推斷為 number console.log("num 變量的值為 "+num); num = "12"; // 編譯錯(cuò)誤 console.log(num);
  • 第一行代碼聲明了變量 num 并=設(shè)置初始值為 2。 注意變量聲明沒(méi)有指定類(lèi)型。因此,程序使用類(lèi)型推斷來(lái)確定變量的數(shù)據(jù)類(lèi)型,第一次賦值為 2,num 設(shè)置為 number 類(lèi)型。
  • 第三行代碼,當(dāng)我們?cè)俅螢樽兞吭O(shè)置字符串類(lèi)型的值時(shí),這時(shí)編譯會(huì)錯(cuò)誤。因?yàn)樽兞恳呀?jīng)設(shè)置為了 number 類(lèi)型。
    error TS2322: Type '"12"' is not assignable to type 'number'.
    

5、變量作用域

變量作用域指定了變量定義的位置。

程序中變量的可用性由變量作用域決定。

TypeScript 有以下幾種作用域:

  • 全局作用域 ? 全局變量定義在程序結(jié)構(gòu)的外部,它可以在你代碼的任何位置使用。
  • 類(lèi)作用域 ? 這個(gè)變量也可以稱(chēng)為 字段 。類(lèi)變量聲明在一個(gè)類(lèi)里頭,但在類(lèi)的方法外面。 該變量可以通過(guò)類(lèi)的對(duì)象來(lái)訪問(wèn)。類(lèi)變量也可以是靜態(tài)的,靜態(tài)的變量可以通過(guò)類(lèi)名直接訪問(wèn)。
  • 局部作用域 ? 局部變量,局部變量只能在聲明它的一個(gè)代碼塊(如:方法)中使用。

以下實(shí)例說(shuō)明了三種作用域的使用:

var global_num = 12 // 全局變量 class Numbers { num_val = 13; // 實(shí)例變量 static sval = 10; // 靜態(tài)變量 storeNum():void { var local_num = 14; // 局部變量 } } console.log("全局變量為: "+global_num) console.log(Numbers.sval) // 靜態(tài)變量 var obj = new Numbers(); console.log("實(shí)例變量: "+obj.num_val)

以上代碼使用 tsc 命令編譯為 JavaScript 代碼為:

var global_num = 12; // 全局變量 var Numbers = /** @class */ (function () { function Numbers() { this.num_val = 13; // 實(shí)例變量 } Numbers.prototype.storeNum = function () { var local_num = 14; // 局部變量 }; Numbers.sval = 10; // 靜態(tài)變量 return Numbers; }()); console.log("全局變量為: " + global_num); console.log(Numbers.sval); // 靜態(tài)變量 var obj = new Numbers(); console.log("實(shí)例變量: " + obj.num_val);復(fù)制

執(zhí)行以上 JavaScript 代碼,輸出結(jié)果為:

全局變量為: 12
10
實(shí)例變量: 13

如果我們?cè)诜椒ㄍ獠空{(diào)用局部變量 local_num,會(huì)報(bào)錯(cuò):

error TS2322: Could not find symbol 'local_num'.

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    516

    瀏覽量

    53850
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2339

    瀏覽量

    42804
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙TypeScript入門(mén)學(xué)習(xí)6:【條件語(yǔ)句】

    條件語(yǔ)句用于基于不同的條件來(lái)執(zhí)行不同的動(dòng)作。 TypeScript 條件語(yǔ)句是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果(True 或 False)來(lái)決定執(zhí)行的代碼塊。
    的頭像 發(fā)表于 04-01 13:51 ?751次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>6<b class='flag-5'>天</b>:【條件語(yǔ)句】

    鴻蒙TypeScript學(xué)習(xí)7:【TypeScript 循環(huán)】

    有的時(shí)候,我們可能需要多次執(zhí)行同一塊代碼。一般情況下,語(yǔ)句是按順序執(zhí)行的:函數(shù)中的第一個(gè)語(yǔ)句先執(zhí)行,接著是第二個(gè)語(yǔ)句,依此類(lèi)推。 編程語(yǔ)言提供了更為復(fù)雜執(zhí)行路徑的多種控制結(jié)構(gòu)。
    的頭像 發(fā)表于 04-02 14:28 ?842次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>7<b class='flag-5'>天</b>:【<b class='flag-5'>TypeScript</b> 循環(huán)】

    鴻蒙TypeScript 開(kāi)發(fā)學(xué)習(xí)9:【TypeScript Number】

    TypeScript 與 JavaScript 類(lèi)似,支持 Number 對(duì)象。 Number 對(duì)象是原始數(shù)值的包裝對(duì)象。
    的頭像 發(fā)表于 04-07 18:02 ?783次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b> 開(kāi)發(fā)<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>9<b class='flag-5'>天</b>:【<b class='flag-5'>TypeScript</b> Number】

    鴻蒙TypeScript入門(mén)學(xué)習(xí)11【Array(數(shù)組)】

    數(shù)組對(duì)象是使用單獨(dú)的變量名來(lái)存儲(chǔ)一系列的值。 數(shù)組非常常用。
    的頭像 發(fā)表于 04-09 14:38 ?1133次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>11<b class='flag-5'>天</b>【Array(數(shù)組)】

    鴻蒙語(yǔ)言TypeScript學(xué)習(xí)15:【聯(lián)合類(lèi)型】

    接口是一系列抽象方法的聲明,是一些方法特征的集合,這些方法都應(yīng)該是抽象的,需要由具體的類(lèi)去實(shí)現(xiàn),然后第三方就可以通過(guò)這組抽象方法調(diào)用,讓具體的類(lèi)執(zhí)行具體的方法。
    的頭像 發(fā)表于 04-14 09:49 ?602次閱讀
    <b class='flag-5'>鴻蒙</b>語(yǔ)言<b class='flag-5'>TypeScript</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>15<b class='flag-5'>天</b>:【聯(lián)合類(lèi)型】

    鴻蒙語(yǔ)言TypeScript學(xué)習(xí)16:【類(lèi)】

    TypeScript 支持面向?qū)ο蟮乃刑匦?,比?類(lèi)、接口等。
    的頭像 發(fā)表于 04-15 09:29 ?1011次閱讀
    <b class='flag-5'>鴻蒙</b>語(yǔ)言<b class='flag-5'>TypeScript</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>16<b class='flag-5'>天</b>:【類(lèi)】

    鴻蒙TypeScript學(xué)習(xí)17:【對(duì)象】

    對(duì)象是包含一組鍵值對(duì)的實(shí)例。 值可以是標(biāo)量、函數(shù)、數(shù)組、對(duì)象等
    的頭像 發(fā)表于 04-15 15:33 ?660次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>17<b class='flag-5'>天</b>:【對(duì)象】

    鴻蒙TypeScript學(xué)習(xí)20:【模塊】

    TypeScript 模塊的設(shè)計(jì)理念是可以更換的組織代碼。 模塊是在其自身的作用域里執(zhí)行,并不是在全局作用域,這意味著定義在模塊里面的變量、函數(shù)和類(lèi)等在模塊外部是不可見(jiàn)的,除非明確地使用 export 導(dǎo)出它們。類(lèi)似地,我們必須通過(guò) import 導(dǎo)入其他模塊導(dǎo)出的
    的頭像 發(fā)表于 04-18 15:19 ?714次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>20<b class='flag-5'>天</b>:【模塊】

    【觸覺(jué)智能 Purple Pi OH 開(kāi)發(fā)板體驗(yàn)】二、鴻蒙系統(tǒng)APP應(yīng)用例程學(xué)習(xí)HDC使用學(xué)習(xí)

    兩年開(kāi)發(fā)鴻蒙APP也是使用的這兩種語(yǔ)言進(jìn)行開(kāi)發(fā)。當(dāng)下看TypeScript程序還能說(shuō)勉強(qiáng)看懂,但是當(dāng)下開(kāi)發(fā)程序就沒(méi)那個(gè)實(shí)力了,需要之后在抽時(shí)間學(xué)習(xí)。技術(shù)更新的也確實(shí)是快?。。。?二、天氣預(yù)報(bào)程序開(kāi)發(fā)
    發(fā)表于 08-31 11:13

    鴻蒙TypeScript入門(mén)學(xué)習(xí)2TypeScript安裝】

    本文介紹 TypeScript 環(huán)境的安裝。 我們需要使用到 npm 工具安裝,如果你還不了解 npm,可以參考我之前文檔。
    的頭像 發(fā)表于 03-27 15:22 ?503次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>2<b class='flag-5'>天</b>【<b class='flag-5'>TypeScript</b>安裝】

    鴻蒙TypeScript開(kāi)發(fā)入門(mén)學(xué)習(xí)3:【TS基礎(chǔ)類(lèi)型】

    任意值是 TypeScript 針對(duì)編程時(shí)類(lèi)型不明確的變量使用的一種數(shù)據(jù)類(lèi)型,它常用于以下三種情況。
    的頭像 發(fā)表于 03-28 15:02 ?531次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>開(kāi)發(fā)<b class='flag-5'>入門(mén)</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>3<b class='flag-5'>天</b>:【<b class='flag-5'>TS</b>基礎(chǔ)類(lèi)型】

    鴻蒙TypeScript入門(mén)學(xué)習(xí)8:【TypeScript 函數(shù)】

    函數(shù)是一組一起執(zhí)行一個(gè)任務(wù)的語(yǔ)句。 您可以把代碼劃分到不同的函數(shù)中。如何劃分代碼到不同的函數(shù)中是由您來(lái)決定的,但在邏輯上,劃分通常是根據(jù)每個(gè)函數(shù)執(zhí)行一個(gè)特定的任務(wù)來(lái)進(jìn)行的。
    的頭像 發(fā)表于 04-03 14:54 ?415次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>8<b class='flag-5'>天</b>:【<b class='flag-5'>TypeScript</b> 函數(shù)】

    鴻蒙TypeScript學(xué)習(xí)13:【元組】

    元組中允許存儲(chǔ)不同類(lèi)型的元素,元組可以作為參數(shù)傳遞給函數(shù)。
    的頭像 發(fā)表于 04-11 14:43 ?492次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>13<b class='flag-5'>天</b>:【元組】

    鴻蒙TypeScript學(xué)習(xí)14:【聯(lián)合類(lèi)型】

    聯(lián)合類(lèi)型(Union Types)可以通過(guò)管道(|)將變量設(shè)置多種類(lèi)型,賦值時(shí)可以根據(jù)設(shè)置的類(lèi)型來(lái)賦值。
    的頭像 發(fā)表于 04-12 15:28 ?441次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>第</b>14<b class='flag-5'>天</b>:【聯(lián)合類(lèi)型】

    鴻蒙TypeScript學(xué)習(xí)21:【聲明文件】

    TypeScript 作為 JavaScript 的超集,在開(kāi)發(fā)過(guò)程中不可避免要引用其他第三方的 JavaScript 的庫(kù)。
    的頭像 發(fā)表于 04-19 15:02 ?577次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學(xué)習(xí)</b>21<b class='flag-5'>天</b>:【<b class='flag-5'>聲明</b>文件】
    RM新时代网站-首页