我有以下代码:
function houseDescriptor([houseColor = 'green', shutterColors = ['red']] = []) {
console.log(houseColor, shutterColors);
}
houseDescriptor('nbh');
为什么要控制台打印:n b
它是如何工作的?
为什么如果传递字符串我没有错误,但是如果我使用houseDescriptor(123),为什么会出现错误?
最佳答案
字符串被视为可迭代,数字则不被视为。它正在对字符串进行基于索引的解构,这就是为什么仅打印n和b的原因。
Have a look at listed iterables
关于javascript - js如何破坏函数的默认值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53115447/