typescript中的二維數(shù)組和初始化

在javascript中其實(shí)沒有二維數(shù)組的類型, 我們實(shí)現(xiàn)二維數(shù)組的方法是向數(shù)組的元素插入數(shù)組, 而typescript提供了不一樣的方式來表示二維數(shù)組.

typescript的二維數(shù)組寫法如下:

let twoM : string[][]

這是變成成js后的代碼

var twoM;

也可以用Array

let twoM : Array<Array<string>>;

建議聲明數(shù)組用Array, 代碼比較清晰.
請注意這段代碼, 編譯成js后, 變量是不會自動(dòng)初始化成數(shù)組的, 如果之后直接給twoM插入一個(gè)值會報(bào)錯(cuò), 例如:

let twoM : string[][]
twoM.push(["abc"])

編譯成功, 但是執(zhí)行編譯后的js會出現(xiàn)這個(gè)錯(cuò)誤

TypeError: Cannot read property 'push' of undefined

我們看看編譯后的js

var twoM;
twoM.push(["abc"]);

由于twoM只是聲明了, 并沒有初始化, 所以運(yùn)行的時(shí)候變量的初始值是undefined.

要避免這個(gè)錯(cuò)誤, 可以在聲明的時(shí)候初始化變量

let twoM : string[][] = []
//或
let twoM : Array<Array<string>> = new Array<Array<string>>()

這樣編譯后的js就是

var twoM = [];
//或
var twoM = new Array();

現(xiàn)在運(yùn)行就不會出問題了, 這里還要注意, 由于是二維數(shù)組, 所以第二維還是undefined的, 不能直接twoM[0][1] = "a1", 這樣可以編譯通過, 但是執(zhí)行的時(shí)候會出現(xiàn)剛才同樣的錯(cuò)誤.

正確的初始化方式是這樣的

twoM[0] = ["a1", "a2", "a3"]  //直接賦值數(shù)組
twoM.push([])  //先插入一個(gè)空的數(shù)組
twoM[1][1] = "b2"  //再向剛插入的數(shù)組賦值

在javascript中其實(shí)沒有二維數(shù)組的類型, 我們實(shí)現(xiàn)二維數(shù)組的方法是向數(shù)組的元素插入數(shù)組, 雖然typescript提供了不一樣的方式來表示二維數(shù)組, 但是最終編譯成js的實(shí)現(xiàn)形式其實(shí)沒有多大改變, 所以有幾點(diǎn)需要注意:

  • 用中括號的方式定義數(shù)組不夠清晰, 最好用Array
  • 數(shù)組要初始化才可以使用
  • 二維數(shù)組需要每個(gè)維度都初始化的, 如果只初始化了第一個(gè)維度, 其他維度直接使用還是會報(bào)錯(cuò)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,656評論 1 51
  • 1 數(shù)組No11 數(shù)組:存放一組相同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) 數(shù)組本身是引用數(shù)據(jù)類型,數(shù)組中的元素可以是基本數(shù)據(jù)類型...
    征程_Journey閱讀 733評論 0 1
  • 扭開噩夢 推出一輛輪椅 在幻化的玻璃里 閃出一道詭異的身影 畫面驚悚 無厘無頭 另外 一片落霞淹沒在黑眸里 在空曠...
    Vincent_2a52閱讀 159評論 0 4
  • 最忙的時(shí)候,每天過的渾渾噩噩。還來不及感傷,下一刻又要奔赴戰(zhàn)場。 從實(shí)習(xí)回來,就陷入了高度旋轉(zhuǎn)的陀螺狀態(tài)。每天接近...
    新芽趙閱讀 926評論 6 5
  • 寒煙半落數(shù)峰行,木葉蕭蕭宿鳥驚。 親歷方知神往處,千年天姥豈虛名。
    夢之旅_926e閱讀 205評論 12 12

友情鏈接更多精彩內(nèi)容