簡體   English   中英

為什么 console.log([1, 2, 3, 4, 5, 6, 7, 8, 9, 10][1, 2, 3, 4, 5, 6, 7][1, 2, 3]) 日志不明確的?

[英]Why console.log([1, 2, 3, 4, 5, 6, 7, 8, 9, 10][1, 2, 3, 4, 5, 6, 7][1, 2, 3]) logs undefined?

我已經關注了這些鏈接

[1,2] + [4,5,6][1] = 1,25 在 JavaScript

為什么 [5,6,8,7][1,2] = 8 在 JavaScript 中?

但無法理解為什么以下代碼undefined 我的理解是[1,2,3]將給出 3,因此[1,2,3,4,5,6,7][3]將是 4,因此[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]將是[1, 2, 3, 4, 5, 6, 7, 8, 9, 10][4]即 5。但它記錄未定義。

 console.log([1, 2, 3, 4, 5, 6, 7, 8, 9, 10][1, 2, 3, 4, 5, 6, 7][1, 2, 3])

你在正確的軌道上。 第二組和第三組[...]是使用括號表示法的屬性訪問,並且1, 2, 3被視為逗號運算符,計算到列表中的最后一個條目。 所以你的代碼基本上是一樣的:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10][7][3]

現在數組中的第七個數字是 8:

 8[3]

並且沒有"3"屬性。

將其分解為實際執行的兩個步驟可能會有所幫助。 首先你得到一個8 ,一個數字,然后你嘗試索引它 - undefined啊喂!

> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10][1, 2, 3, 4, 5, 6, 7]
8
> 8[1,2,3]
undefined

您定義一維數組a=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]但在讀取a[...][...]的值期間將其視為二維數組( a[...]返回數組元素 - 這是數字 - 不是數組)。 這是您的代碼背后的想法錯誤。

 a=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] console.log( a[0][0] );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM