我被执行了为什么不能输出,和什么条件下能被输出啊

我被执行了为什么不能输出,和什么条件下能被输出啊

正在回答 回答被采纳积分+1

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

1回答
好帮手慕慕子 2021-12-22 16:00:35

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

1、因为const [x = func()] = [1] 这种写法,解构时,x可以正确匹配到到对应的值1, 此时,x设置的默认值不生效,而js语法中规定的,默认值表达式是惰性的,也就是说默认值没有生效时,不会执行表达式func(), 所以不会输出“我被执行了”

2、当使用const [x = func()] = []这种写法, 数组解构时,x没有匹配到对应的值,使用默认值,此时,才会执行func(),输出“我被执行了”

祝学习愉快~

  • 提问者 球球不一般 #1

    什么是惰性

    搜索

    复制

    2021-12-22 16:39:38
  • 好帮手慕慕子 回复 提问者 球球不一般 #2

    惰性就是说解构设置的默认值没有生效时,不会执行默认值表达式,只有默认值生效才回去执行设置的表达式,祝学习愉快~

    2021-12-22 16:46:27
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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