zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    Analysis Services features supported by SQL Server editions
    Azure DevOps to Azure AppServices
    Power BI For Competition
    Win10开机“提示语音”以及”随机播放音乐”
    Azure DevOps
    Allow Only Ajax Requests For An Action In ASP.NET Core
    Mobile CI/CD 101
    Configure SSL for SharePoint 2013
    AWS Step Function Serverless Applications
    Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  • 原文地址:https://www.cnblogs.com/axu1997/p/11823883.html
Copyright © 2011-2022 走看看