console.log中套一个方法,为什么输出undefined?

直接上代码

    var a = console.log('helloWorld')
    console.log(a)

突发奇想,在console.log里面再套一个console.log,然后控制台输出结果是:

helloWorld
undefined  

控制台第一行的helloWorld应该是套在里面的console.log打印的,但是为啥外面那层打印出来是undefined呢?所以这个console.log是啥原理,允许输入的参数类型又有哪些?

console.log是用来在控制台输出信息的,其本身是一个函数。
既然是一个函数,当我们不设置返回值的时候,则默认返回值为undefined