console.log为什么会多输出一行undefined?

yifon 发布于 2016/06/20 22:35
阅读 1K+
收藏 1
function show(){
    var b=1;
    a=++b;
    //return a;
}
show();

console.log(a);//2

可以看到最后还多了一行undefined,不知道为什么??

加载中
0
千一
千一

show 函数没有返回值

一个未初始化的变量的值为undefined,一个没有传入实参的形参变量的值为undefined,如果一个函数什么都不返回,则该函数默认返回undefined.

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/undefined

yifon
yifon
好像所有的没有返回值的都会有这个undefined,所以也就是说console.log(a)的作用相当于eval(a),同时console.log本身又没用任何返回值,所以在控制台上凡是调用它的地方都可以看到多输出了一行<undefined吧?
yifon
yifon
谢谢,但好像跟我问的有一点不一样,我想知道的是为什么控制台输出了一行“<undefined”, 好像插入的图片没显示出来了
0
千一
千一

控制台直接运行代码,会返回最后一句代码的返回值

var a = "b"; a;



以上代码在控台就会直接返回 a 的值 b

0
沉默的懒猫
沉默的懒猫

chrome/safari这样webkit的浏览器执行console.log(1)都会出现一个undefined的。

0
wuyiw
wuyiw

因为console.log返回的是undefined,可以用如下代码验证:

var res = console.log();
console.log(res === undefined);



然后控制台会打印语句的返回结果, 于是就多了个undefined.

返回顶部
顶部