繁体   English   中英

控制console.log以获取不返回的功能

[英]Control of console.log for functions without return

我想知道如何直接调用没有返回值的函数并通过console.log调用它。

我了解到,不返回的函数对console.log的控制不同。

但是我不知道这意味着什么。

我在下面编写了示例代码,想知道输出值和未定义。

测试代码

> var bark = function() { return 1; };
undefined
> bark();
1
> console.log(bark());
1
undefined
> var bark2 = function() { console.log('a'); };
undefined
> bark2()
a
undefined
> console.log(bark2());
a
undefined
undefined
>

我敢肯定,这里的困惑是开发人员控制台的产物,它综合了以下因素:

  • 控制台在显示console.log()的输出的同一位置显示每个函数的返回值
  • 当一个函数没有返回值时,它将返回undefined
  • console.log是没有返回值的函数

因此,简单的语句console.log(1)最终在控制台中显示了此语句:

> 1
> undefined

“ 1”是console.log语句的输出。 “ undefined”是console.log()函数的返回值。 (某些浏览器以略微不同的颜色或带有微小图标的形式显示它们,以帮助您区分输出值和返回值,但将二者混淆起来很细微且容易。)

因此,通过示例输出:

> var bark = function() { return 1; };
undefined    // <-- return value from defining the function
> bark();    
1            // <-- return value from bark()
> console.log(bark());
1            // <-- return value from bark()
undefined    // <-- return value from console.log()
> var bark2 = function() { console.log('a'); };
undefined    // <-- return value from defining bark2
> bark2()
a            // <-- output of console.log
undefined    // <-- return value of bark2()
> console.log(bark2());
a            // <-- output of console.log inside bark2
undefined    // <-- return value of bark2
undefined    // <-- return value of the console.log wrapping bark2
var bark = function() { return 1; };
bark();

上面的函数返回1. console.log并查看:

 var bark = function() { return 1; }; console.log(bark()); 

var bark2 = function() { console.log('a'); };
bark2();
console.log(bark2());

function被调用时,它打印a通过自己console.log但是当function callprinted我们得到undefined ,因为console.logprint的值returnedfunctionundefined ,因为function不包含任何return声明。

看下面的答案:

如果您是从JS文件运行console.log(),则不应添加此未定义的行。

如果您从控制台本身运行console.log(),那么这很有意义。 这是为什么:在控制台中,您可以键入变量的名称(例如,尝试键入window),并打印有关该变量的信息。 当您从控制台运行任何void函数(例如console.log)时,它还会打印出有关返回值的信息,这种情况下是未定义的。

-https://stackoverflow.com/a/14634066/10984479

无效函数表示不返回任何内容的函数。

为了便于调试,控制台会显示所有函数/表达式的输出。 console.log()返回undefined,因此显示为undefined。

在这里,您将运行bark函数,该函数返回1,因此输出1:

> bark();
1

在这里,您将运行bark函数,该函数返回1,因此其输出为1。Console.log不返回任何内容,因此其日志未定义:

> console.log(bark());
1
undefined

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM