鍍金池/ 問答/HTML/ Node.js中map的坑

Node.js中map的坑

const deviceLogMap = new Map([
  [0,'測試'],[1,'設(shè)防'][3,'測試2']]);

上面的map中

[1,'設(shè)防'][3,'測試2']

之間缺少,號(hào),但是在運(yùn)行時(shí)沒有錯(cuò)誤信息,無法捕捉到相關(guān)的錯(cuò)誤信息。
求解答

回答
編輯回答
厭遇

clipboard.png

敢問你的nodejs是什么版本的。。。

2018年1月10日 18:22
編輯回答
擱淺

少了逗號(hào)就把[3,'測試2']當(dāng)作數(shù)組索引了吧。

let a = [1,'設(shè)防'];
const deviceLogMap = new Map([
  [0,'測試'],a[3,'測試2']]);

————————更新
= =測試了一下我的是報(bào)錯(cuò)的。

2017年4月30日 18:28
編輯回答
涼薄

這不能算作bug。
[1,'設(shè)防'][3,'測試2']這樣的語法本身就是成立的。
等價(jià)于

    const arr = [1,'設(shè)防']
    console.log(arr['測試2'])
//    => undefined

沒毛病 :)

=======
測試了一下我node也是報(bào)錯(cuò)的 emmm...

2017年8月7日 00:24
編輯回答
朕略萌

這都被你發(fā)現(xiàn)了,V8的bug。
new Map(wrong_iterable) swallow TypeError in file scripts
https://chromium-review.googl...

補(bǔ)充說明

這個(gè)bugMapnew Map([iterable]),但是不可迭代的參數(shù)沒有拋出錯(cuò)誤給調(diào)試器,你會(huì)發(fā)現(xiàn)后續(xù)的代碼是不能執(zhí)行的,這取決于nodejs版本所使用的V8。

2017年2月2日 14:30