11. 函数
1. 默认值
- // 例子 11-1
-
- // bad
- function test(quantity) {
- const q = quantity || 1;
- }
-
- // good
- function test(quantity = 1) {
- ...
- }
- // 例子 11-2
-
- doSomething({ foo: 'Hello', bar: 'Hey!', baz: 42 });
-
- // bad
- function doSomething(config) {
- const foo = config.foo !== undefined ? config.foo : 'Hi';
- const bar = config.bar !== undefined ? config.bar : 'Yo!';
- const baz = config.baz !== undefined ? config.baz : 13;
- }
-
- // good
- function doSomething({ foo = 'Hi', bar = 'Yo!', baz = 13 }) {
- ...
- }
-
- // better
- function doSomething({ foo = 'Hi', bar = 'Yo!', baz = 13 } = {}) {
- ...
- }
- // 例子 11-3
-
- // bad
- const Button = ({className}) => {
- const classname = className || 'default-size';
- return <span className={classname}></span>
- };
-
- // good
- const Button = ({className = 'default-size'}) => (
- <span className={classname}></span>
- );
-
- // better
- const Button = ({className}) =>
- <span className={className}></span>
- }
-
- Button.defaultProps = {
- className: 'default-size'
- }
- // 例子 11-4
-
- const required = () => {throw new Error('Missing parameter')};
-
- const add = (a = required(), b = required()) => a + b;
-
- add(1, 2) // 3
- add(1); // Error: Missing parameter.