猿问

js 数组方法执行问题

在页面直接执行

['name','age'].forEach(val => console.log(val))


会报Cannot read property 'forEach' of undefined,但如果改成下面这样,就正常了,这是为什么?事关js解析机制?


方法一,正常

setTimeout(function(){

    ['name','age'].forEach(val => console.log(val))

},0)


方法二,正常

var arr = ['name','age'] ;

arr.forEach(val => console.log(val))


撒科打诨
浏览 297回答 1
1回答

慕容3067478

我之前遇到这个情况的时候,是因为forEach的前面没写分号:let i = 1['a', 'b'].forEach(a => console.log(a))你在前面不写分号的情况下,对于 js 来说它可能是这样执行的:let i = 1['a', 'b'].forEach(a => console.log(a))你可以用这个来验证一下:let e = {'a': [1, 2, 3]}['a'].forEach(a => console.log(a))/***    1*    2*    3*/
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答