vue 钩子函数mounted () { } 报错,很奇怪,请问什么原因?

mounted () {
  ['test'].forEach(a => console.log(a))
} 

出现下面的错误
图片描述

mounted () {
  console.log(['test'].forEach)  // 加了这一行
  ['test'].forEach(a => console.log(a))
} 

注意错误信息变了!!!
图片描述

阅读 6.2k
4 个回答

第一个报错稍后再说。

第二个报错是因为你没有加分号的原因

mounted () {
  console.log(['test'].forEach)  // 加了这一行
  ['test'].forEach(a => console.log(a))
} 

解析成

mounted () {
  console.log(['test'].forEach)['test'].forEach(a => console.log(a))
  console.log(['test'].forEach)的返回值的['test']属性然后去forEach
} 

大概率是编译完的代码有问题,尝试加括号。
(['test']).forEach

console.log(xxx)
;(['test']).forEach

第二个错误的原因见采纳的答案。
第一个错误也是因为分号,
其实在第一个报错那里,mounted中的内容是

mounted () {
  this.items = data.items
  ['test'].forEach(a => console.log(a))
} 

因为不知道是分号的原因就把this.items = data.items这行给省略了
项目中使用了eslint,而eslint又不建议写分号,所以最近才养成了不写分号的习惯

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题