<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
var arr = [1, 2, 3, 4]
問:arr[1] = ?; arr['1'] = ?
答:arr[1] = 2; arr['1'] = 2
這裡可以再分為兩個問題:
var arr = [1, 2, 3, 4] arr[1] = 10; // 數位場景 arr['10'] = 1; // 字串場景 arr['a'] = 1; // 字串場景 arr[true] = 2; // 布林值 arr[undefined] = 3; // undefined arr[null] = 4; // null arr[Symbol] = 5; // Symbol arr[new Object()] = 6; // 物件 arr[function(){}] = 7 // 函數
列印結果:
結果說明,修改陣列的值的過程中,下標index
如果是數位,那麼,就是正常的陣列賦值。
如果是非數位,那麼會將其轉換為字串,其實陣列也是物件,那麼,非數位就相當於給物件arr
的key
鍵定義的value
值。
通過上述方式先為陣列賦值,然後再通過以下方式取值:
console.log(arr[1]); // 10 console.log(arr['10']); // 1 console.log(arr[true]); // 2 console.log(arr[undefined]); //3 console.log(arr[null]); // 4 console.log(arr[Symbol]); // 5 console.log(arr[new Object()]); // 6 console.log(arr[function(){}]); // 7
由列印的結果可以看出,陣列在取值時索引是數位,按照陣列取值方式獲取。
如果索引位置是非數位,會將其轉換成字串,通過物件的方式取值。
所以題目中的arr['1']
會轉換成arr[1]
,最終獲取到的值為2
。
var obj = { 0: 1, 1: 2, 2: 3 }
問:obj[1] = ?; obj['1'] = ?
答:obj[1] = 2; obj['1'] = 2
這裡也可以再分為兩個問題:
var obj = { 0: 1, 1: 2, 2: 3 } obj[1] = 10; // 數位場景 obj['10'] = 1; // 字串場景 obj['a'] = 1; // 字串場景 obj[true] = 2; // 布林值 obj[undefined] = 3; // undefined obj[null] = 4; // null obj[Symbol] = 5; // Symbol obj[new Object()] = 6; // 物件 obj[function () {}] = 7 // 函數
列印結果:
可以看出,物件賦值的時候,如果key值不是字串,會將其轉換成字串。
通過上述方式先為物件賦值,然後再通過以下方式取值:
console.log(arr[1]); // 10 console.log(arr['10']); // 1 console.log(arr[true]); // 2 console.log(arr[undefined]); //3 console.log(arr[null]); // 4 console.log(arr[Symbol]); // 5 console.log(arr[new Object()]); // 6 console.log(arr[function(){}]); // 7
由列印的結果可以看出,物件在取值時,如果當前key值不是字串,會將其轉換成字串,再取值。
所以題目中的arr[1]
會轉換成arr['1']
,最終獲取到的值為2
。
物件的下標如果不是字串,會將其先轉換成字串,再去求值。陣列的下標如果不是數位,先將其嘗試轉成數位去取值;如果轉不成數位,則會利用陣列也是物件的特點,將其轉換成字串,再去取值。
以上就是JavaScript面試陣列index和物件key問題詳解的詳細內容,更多關於JavaScript陣列index物件key的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45