javascript - js如何破坏函数的默认值?

标签 javascript ecmascript-6

我有这个代码:

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/

相关文章:

javascript - ExpressJS : Error: Can't set headers after they are sent.

javascript - JavaScript 和 ES6 中柯里化(Currying)函数的函数应用

javascript - 如何在 repl.it 在线 IDE 上使用 javascript 从控制台接收用户输入

javascript - Operators 和 valueOf 与 ES6 代理 (Firefox)

javascript - 如何根据输入值自动选择选项

javascript - 如何在超过一定数量后隐藏元素 JavaScript 或 jQuery?

javascript - 调用 addPoint 时 HighCharts 会丢失所有数据

javascript - 我如何创建这样的东西?

javascript - 在异步 Mocha 测试中配置 JSDom

javascript - 箭头函数中的可选参数