为什么打印出来有一个undefined

为什么打印出来有一个undefined

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>


<body>

<script type="text/javascript">

//补充代码

let node={

    type:"identifier",

    name:"ES",

    loc:{

        start:["line","colum"],

        end:{

            line:1,

            colum:4

        }

    }

};

const {

    loc:{

        start:

            [a],

            end:{b}

        }

}=node;

console.log(a,b)

    </script>

</body>

</html>



正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,是指打印line属性值吗?如果是得话,那么老师第一次回复中已经给出了方案,输出结果就是line属性值1,如下所示:

http://img1.sycdn.imooc.com//climg/5faf6e920909194205710753.jpg

如果是指输出属性名line,那么是不可以,因为解构获取的是属性值,而不是属性名。

祝学习愉快~


好帮手慕慕子 2020-11-14 10:21:54

同学你好,对象的解构时,属性名要保持一致,由于node对象下的los属性中的end对象下没有属性b,所以b无法解构到对应的值,返回的就是undefined。

建议修改:调整为end下的line属性

http://img1.sycdn.imooc.com//climg/5faf3f2309a8ac2606290737.jpg

http://img1.sycdn.imooc.com//climg/5faf3f3209c6103804160166.jpg

祝学习愉快~

  • 提问者 Ting111 #1
    那如果是要打印line这个属性呢,要怎么写
    2020-11-14 10:27:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师