return console.log()结果为undefined现象的解答
2024-08-30 01:00:26
console.log总是出现undefined——麻烦的console
//本文为作者自己思考后总结出的一些理论知识,若有错误,欢迎指出
bug出现
需求如下:新建一个car对象,调用其中的decoration功能,识别出该类是那一辆车,车的款式要求从"劳斯莱斯", "兰博基尼", "别克君威", "北京现代"中随机出现
//定义一个car类
function Car() {
this.decoration = function () {
var carlist = ["劳斯莱斯", "兰博基尼", "别克君威", "北京现代"]
var r = Math.floor(Math.random() * carlist.length);
return console.log(carlist[r]);
}
}
var car = new Car();
// 调用car中的decoration方法
console.log("我是一辆" + car.decoration());
但是与预期不同,控制台中输出的结果为,
即car.decoration的值为undefined:
解决方案:
直接将this.decoration 的返回值设置为carlist[r]即可,代码如下
//定义一个car类
function Car() {
this.decoration = function () {
var carlist = ["劳斯莱斯", "兰博基尼", "别克君威", "北京现代"]
var r = Math.floor(Math.random() * carlist.length);
return carlist[r];
}
}
var car = new Car();
// 调用car中的decoration方法
console.log("我是一辆" + car.decoration());
这时候问题解决了,但是依旧需要知道问题出现的原因
原因分析
例一:
如下,但return一个1+1时返回结果不会是一个 1+1 而是返回一个2
function plus(){
return 1+1;
}
console.log(plus());
也容易看出,函数的返回值是一个运行结果
再来看一个例子
例二:
代码如下所示,此时控制台打印的结果为 undefined,也就是说,未指定return值的情况下,函数的执行结果为返回值为undefined
function plus(){
1+1;
}
console.log(plus());
例三
再看看下面代码的输出结果:
console.log(typeof(console.log ));
其结果为function
结论
则当我们return 一个console.log()时,return的是一个方法的放回结果,且该方法没有指定返回值,就像例二一样
所以在我们return 一个console.log()函数的时候得到则会是一个undefined。
最新文章
- 微信小程序之登录态维护(十一)
- 精选12个时尚的 CSS3 效果【附源码下载】
- Uncaught TypeError: Object #<;Object>; has no method &#39;fancybox&#39;
- 南阳理工OJ 15 括号匹配
- C#中标准Dispose模式的实现
- 简单粗暴的“Debug模式”
- Qt5.5.1和Qt5.3.2编译OCI驱动教程及验证方法
- ABP官方文档翻译 3.7 领域事件(事件总线)
- EF+Redis(StackExchange.Redis)实现分布式锁,自测可行
- Python之旅:元组
- opencv hog算子
- AngularJS实现跨域请求
- php实现简单的权限管理
- window.print
- DRF(2) - 解析器,序列化组件使用(GET/POST接口设计)
- 基于java容器注解---基于泛型的自动装配
- python中的enumerate使用
- OpenCV——黑白调整
- [HDU2829] Lawrence [四边形不等式优化dp]
- 钉钉/支付宝小程序和微信小程序的区别及转换方案
热门文章
- 有了这个开源 Java 项目,开发出炫酷的小游戏好像不难?
- 一个基于Bootstrap实现的HMTL可视化编辑工具
- Python正则表达式语法
- 数据结构 4 时间复杂度、B-树 B+树 具体应用与理解
- Python网络协议(osi七层协议)
- 如何找回微信小程序源码?2020年微信小程序反编译最新教程 小宇子李
- Linux启动nginx时报错nginx: [emerg] getpwnam(";nginx";) failed
- 结题报告--hih0CoderP1041
- svn 追责神器 blame vscode - SVN Gutter
- Mol. Cell. Proteomics | 糖蛋白基因组学:一种常见的基因多态性影响人血清胎球蛋白/α-2-HS-糖蛋白的糖基化形式