请问为什么var b = x() 会在控制台打印出11111? 这不是一个赋值表达式吗?

还有一个问题 为什么console.log(b) 是undefined

function x() {
  console.log(11111)
}
var b = x()
console.log(b)
阅读 2.2k
3 个回答

var b = x()

x() 调用了函数 x

然后 x() 的返回值 (undefined)被赋值给了 b

你的function x 这个没有返回值 return一个返回值 就不会 undefined

https://developer.mozilla.org...
function x() {
  console.log(11111)
return 222222
}
var b = x()
console.log(b)
VM1436:2 11111
VM1436:6 222222

我的理解:

  1. console.log()里打印时调用了x()方法,所以"111111"也被执行了,
  2. x()调用后赋值给b,但因为没有返回值所以得到的是undefined

可以打断点试试~

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