请问为什么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

可以打断点试试~

推荐问题