if pattern part has no match. { a: x, b: y } = { a: 3 }; // TypeError [x, y] = ['a']; // TypeError [x, y] = ['a', 'b', 'c']; // OK: x='a', y='b' Default value: use if no match or value is undefined { a: x, b: y=5 } = { a: 3 }; // x=3, y=5 { a: x, b: y=5 } = { a: 3, b: undefined }; // x=3, y=5 [x, y='b'] = ['a']; // x='a', y='b' [x, y='b'] = ['a', undefined]; // x='a', y='b' Dr. Axel Rauschmayer (rauschma.de) ECMAScript 6 2014-06-13 15 / 65