最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript面試數(shù)組index和對(duì)象key問(wèn)題詳解

 更新時(shí)間:2022年12月22日 14:25:40   作者:qb  
這篇文章主要為大家介紹了JavaScript面試數(shù)組index和對(duì)象key問(wèn)題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

面試題一:

var arr = [1, 2, 3, 4]

問(wèn):arr[1] = ?; arr['1'] = ?

答:arr[1] = 2; arr['1'] = 2

這里可以再分為兩個(gè)問(wèn)題:

1、數(shù)組賦值

var arr = [1, 2, 3, 4]
arr[1] = 10; // 數(shù)字場(chǎng)景
arr['10'] = 1; // 字符串場(chǎng)景
arr['a'] = 1; // 字符串場(chǎng)景
arr[true] = 2; // 布爾值
arr[undefined] = 3; // undefined
arr[null] = 4; // null
arr[Symbol] = 5; // Symbol
arr[new Object()] = 6; // 對(duì)象
arr[function(){}] = 7 // 函數(shù)

打印結(jié)果:

結(jié)果說(shuō)明,修改數(shù)組的值的過(guò)程中,下標(biāo)index如果是數(shù)字,那么,就是正常的數(shù)組賦值。

如果是非數(shù)字,那么會(huì)將其轉(zhuǎn)換為字符串,其實(shí)數(shù)組也是對(duì)象,那么,非數(shù)字就相當(dāng)于給對(duì)象arrkey鍵定義的value值。

2、數(shù)組取值

通過(guò)上述方式先為數(shù)組賦值,然后再通過(guò)以下方式取值:

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

由打印的結(jié)果可以看出,數(shù)組在取值時(shí)索引是數(shù)字,按照數(shù)組取值方式獲取。

如果索引位置是非數(shù)字,會(huì)將其轉(zhuǎn)換成字符串,通過(guò)對(duì)象的方式取值。

所以題目中的arr['1']會(huì)轉(zhuǎn)換成arr[1],最終獲取到的值為2。

面試題二:

var obj = {
    0: 1,
    1: 2,
    2: 3
}

問(wèn):obj[1] = ?; obj['1'] = ?

答:obj[1] = 2; obj['1'] = 2

這里也可以再分為兩個(gè)問(wèn)題:

1、對(duì)象賦值

var obj = {
    0: 1,
    1: 2,
    2: 3
}
obj[1] = 10; // 數(shù)字場(chǎng)景
obj['10'] = 1; // 字符串場(chǎng)景
obj['a'] = 1; // 字符串場(chǎng)景
obj[true] = 2; // 布爾值
obj[undefined] = 3; // undefined
obj[null] = 4; // null
obj[Symbol] = 5; // Symbol
obj[new Object()] = 6; // 對(duì)象
obj[function () {}] = 7 // 函數(shù)

打印結(jié)果:

可以看出,對(duì)象賦值的時(shí)候,如果key值不是字符串,會(huì)將其轉(zhuǎn)換成字符串。

2、對(duì)象取值

通過(guò)上述方式先為對(duì)象賦值,然后再通過(guò)以下方式取值:

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

由打印的結(jié)果可以看出,對(duì)象在取值時(shí),如果當(dāng)前key值不是字符串,會(huì)將其轉(zhuǎn)換成字符串,再取值。

所以題目中的arr[1]會(huì)轉(zhuǎn)換成arr['1'],最終獲取到的值為2

總結(jié)

對(duì)象的下標(biāo)如果不是字符串,會(huì)將其先轉(zhuǎn)換成字符串,再去求值。數(shù)組的下標(biāo)如果不是數(shù)字,先將其嘗試轉(zhuǎn)成數(shù)字去取值;如果轉(zhuǎn)不成數(shù)字,則會(huì)利用數(shù)組也是對(duì)象的特點(diǎn),將其轉(zhuǎn)換成字符串,再去取值。

以上就是JavaScript面試數(shù)組index和對(duì)象key問(wèn)題詳解的詳細(xì)內(nèi)容,更多關(guān)于JavaScript數(shù)組index對(duì)象key的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

临潭县| 长兴县| 竹山县| 兴宁市| 喀喇沁旗| 三亚市| 油尖旺区| 商城县| 铁岭县| 巴林左旗| 澳门| 昌乐县| 曲松县| 高台县| 永川市| 瑞丽市| 广州市| 东乌珠穆沁旗| 通榆县| 霍城县| 永寿县| 武夷山市| 同江市| 察雅县| 吉林市| 昆山市| 余姚市| 稻城县| 克山县| 怀宁县| 明星| 绵阳市| 多伦县| 汉寿县| 昌平区| 永兴县| 富民县| 太康县| 祁阳县| 崇阳县| 广南县|