首页 > 解决方案 > js如何破坏函数的默认值?

问题描述

我有这个代码:

function houseDescriptor([houseColor = 'green', shutterColors = ['red']] = []) {
    console.log(houseColor, shutterColors);
}

houseDescriptor('nbh');

为什么控制台打印:nb

它是如何工作的?

为什么如果我传递字符串我没有错误,但如果我使用 houseDescriptor(123),我得到一个错误?

标签: javascriptecmascript-6

解决方案


字符串被视为可迭代对象,而数字则不是。它正在对您的字符串进行基于索引的解构,这就是为什么只打印 n 和 b 的原因。

查看列出的可迭代对象


推荐阅读