return console.log()结果为undefined现象的解答
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。
return console.log()结果为undefined现象的解答的更多相关文章
- JS里try...catch...finally详解,以及console日志调试(console.log、console.info等)
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- [AST Babel Plugin] Transform code, add line:column number for console log
For example we have current code: function add(a, b) { console.log(a, b) return a + b } function sub ...
- console.log(a)和console.log(window.a)的区别?
console.log(window.l); //undefined console.log(l); //Uncaught ReferenceError: l is not defined js对于未 ...
- console.log的返回值undefined
console.log(fun()); function fun(){ console.log(1); } //////输出结果为: 1 undefined console.log(fun()); ...
- console.log((function f(n){return ((n > 1) ? n * f(n-1) : n)})(5))调用解析
console.log((function f(n){) ? n * f(n-) : n)})()); 5被传入到函数,函数内部三元计算,5 > 1成立,运算结果是5*f(4),二次运算,5*4 ...
- 从window.console&&console.log(123)浅谈JS的且运算逻辑(&&)
一.JS的且运算记得最开始看到window.console&&console.log(123),当时知道能起什么作用但是没有深入研究,最近在研究后总算弄明白了.要理解这个,首先得明白三 ...
- 前端不为人知的一面--前端冷知识集锦 前端已经被玩儿坏了!像console.log()可以向控制台输出图片
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...
- JS之console.log详解以及兄弟姐们邻居方法扩展
console.log() 基本用法 console.log,前端常用它来调试分析代码,你可以在任何的js代码中调用console.log(),然后你就可以在浏览器控制台看到你刚才打印的常量,变量,数 ...
- {}+[]与console.log({}+[])结果不同?从JavaScript的大括号谈起
看到这样一个问题:为什么直接在控制台运行{} + []和用console.log({} + [])输出,两者结果不一样? 于是乎打开chrome的控制台运行了一下: 为什么结果会这样呢?不得已学习一下 ...
随机推荐
- js动态创建svg与use 使用iconfont symbol
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- django 从零开始 13 返回文件
进行一些操作返回文件,flask和django差不多,基本都是在返回response 并且对其中的返回头部写入返回文件信息 # image def image(request): f = open(r ...
- 爬虫之BeautifulSoup类
安装:pip install BeautifulSoup4 下表列出了主要的解析器,以及它们的优缺点:看个人习惯选取自己喜欢的解析方式 # 获取html代码 import requests r = r ...
- python3.7安装pygame
经过各种找,下面这个安装地址中的版本是最全的 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame 本机python版本
- R语言实战(三) 图形初阶
3.1 使用图形 plot:基础绘图 abline:添加回归直线 hist:绘制直方图 boxplot:绘制箱线图 dev.new():returns the return value of the ...
- django 用户认证 user对象
django中的用户模型 内部带有很多的属性方法,我们可以直接使用 1 is_staff Boolean.决定用户是否可以访问admin管理界面.默认False. 2 is_active Boolea ...
- React笔记1
目录 1.react基础:类组件.函数式组件.ES5/ES6继承 2.生命周期钩子函数 3.什么是JSX 4.props和state有什么区别 5.路由配置 6.自定义封住组件 7.React 状态管 ...
- 快速上手项目远程团队协作--CODING(新手向)
快速上手项目远程团队协作--CODING(新手向) CODING网址:https://e.coding.net/signin 前言:之前用过github,用过微软的Azure协作(https://az ...
- 网络安全从入门到精通(第一章-2)快速自建web安全测试环境
本文内容 动态语言 常见服务器脚本 动态语言可以做什么? 常见服务器环境快捷搭建软件 快速的搭网站的环境 CMS 1,动态语言:是对服务器行为的编程,这被称为服务器端脚本或服务器脚本. 2,常见服务器 ...
- Linux nginx安装步骤 centos7
1.安装依赖: yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2.创建一个文件夹cd /usr/localmk ...