这报错什么 意思,这样写不对吗

这报错什么 意思,这样写不对吗

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title></title>

</head>

<body>

<script>

    const arr = ["a",["b","c",["d"],[undefined,"g",["x"],["y"]]],"h",["l"]];

/*补充代码*/

console.log(const[,[,,[,],][,,[x=1]]]=arr; 

</script>

</body>

</html>


正在回答

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

9回答

同学你好,理解的是可以的,总得来说,就是不匹配g,需要把g的位置空出来,也就是在下方箭头处添加一个逗号。

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

祝学习愉快~

好帮手慕言 2020-11-14 10:30:03

同学你好,同学理解的有些误差。老师想表达的意思是:undefined和["x"]之间,还有一个"g",按照编程题的要求,"g"不需要匹配出来,所以需要把"g"的位置空出来。

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

​“好帮手慕星星”老师是在下方箭头处添加了一个逗号,就把"g"的位置空出来了。

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

文字是冰冷的,只有文字描述,可能会出现老师没有真正理解同学的疑问,同学没有理解老师的解答这种情况,同学不要着急,可以和老师多沟通,老师肯定会帮助同学解答疑惑的。

祝学习愉快~

  • 提问者 Ting111 #1
    所以是说 undefined=1或者a=1也好,这个赋值语句,和 后面这个代表g的逗号之间,需要一个逗号隔开,来区分这两个值?我表达清楚了吗
    2020-11-14 10:33:25
提问者 Ting111 2020-11-13 22:19:10

不知道为什么,每次提问你们回答问题就好像是在解释给自己听,自说自话,作为一个对ES6完全不明白的人,你们的解释我完全理解不了,你们既然是在给学习的人解答,就麻烦站在一个什么都不懂的人的角度去解答,不然花这个钱干嘛?

好帮手慕星星 2020-11-11 17:36:23

同学你好,这里的逗号是undefined后面的逗号,而“g”是没有加逗号的,所以少了一个

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

undefined后面和“g”挨着,并不是和["x"]挨着哦。

祝学习愉快!

  • 提问者 Ting111 #1
    你的意思是不是说,undefined是个变量,变量和常量要用逗号隔开?
    2020-11-13 22:12:23
好帮手慕星星 2020-11-11 14:54:47

同学你好,匹配还是不对,多了一个数组结束的 ] ,少匹配了一个字符

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

代码还需要const定义,前面说过了undefined不能作为变量使用,参考修改

  const [, [, , [],
[aa = 1, , [x = 2]]
]] = arr
console.log(aa, x);

aa匹配到的是undefined,因为赋值为1了,所以aa的结果为1 。而x有默认值为"x",所以不显示2 ​

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

祝学习愉快!

  • 提问者 Ting111 #1
    逗号我写了啊?哪里少了一个
    2020-11-11 15:00:05
提问者 Ting111 2020-11-10 20:15:00

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title></title>

</head>

<body>

<script>

    const arr = ["a",["b","c",["d"],[undefined,"g",["x"],["y"]]],"h",["l"]];

/*补充代码*/

[,[,,[],][undefined=1,[x=2]]]=arr;

console.log(undefined,x);

</script>

</body>

</html>


这样是对的吗,我的输出是undefined和2

好帮手慕星星 2020-11-10 18:04:04

同学你好,在老师第一次回答中已经说明了,const不能在console.log()输出中使用

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

需要放在外面。

代码中其他问题:

1、["d"]这里只要一项,里面不需要添加逗号,需要放在外面

2、匹配到undefined并赋值默认值,是设置变量去匹配undefined,给变量赋值,而不是给undefined赋值哦,也就是undefined不能作为变量使用

3、undefined与["x"]中间还有一项,需要添加逗号

参考修改:

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

 const [, [, , [],
            [aa = 1, , [x]]
        ]] = arr
        console.log(aa, x);

祝学习愉快!

提问者 Ting111 2020-11-09 18:28:52

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title></title>

</head>

<body>

<script>

    const arr = ["a",["b","c",["d"],[undefined,"g",["x"],["y"]]],"h",["l"]];

/*补充代码*/

console.log(const[,[,,[,][undefined=1,[x=2]]]]=arr); 

</script>

</body>

</html>



这样写应该没问题了啊,为什么还是报错const没有定义,不是说需要哪个元素就取到哪个元素后面的可以不写了吗

好帮手慕夭夭 2020-11-08 19:13:04

同学你好,问题解答如下:

1.报错的意思是“const是无效的语法”。这是因为把一条语句放在了console.log()中,语法不对。

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

2.console.log()缺少了结束的小括号

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

3.数组解构赋值时,等号左侧的数组与arr数组结构不一样。

综上所述,代码如下修改:

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

细心对比一下上面数组的结构如何写,可以教给同学一个小技巧,把数组arr复制一个,然后需要解构赋值的元素,其他的都删掉,只留逗号。例如如下,老师把前面没有用的都删掉,我们需要的是第一个'x’,后面的元素也都删掉,这里老师只是展示了如何去删元素,所以后面的还没有删掉。删掉之后,把'x’换成x=1即可

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

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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