Shorthand Property & concise methods

const name = "Jon";
const age = 20;
const person = {
  name,
	age,
  getProfile: function() {
		return "name : "+ this.name + " age : " + this.age; 
  }
}

Computed Property Name

export default function Input() {
  const [state, setState] = useState({
    id: '',
    password: '',
  })

  const handleChange = e => {
    setState({
      [e.target.name]: e.target.value,
    })
  };

  return (
    <React.Fragment>
      <input value={state.id} onChange={handleChange} name="name" />
      <input value={state.password} onChange={handleChange} name="password" />
    </React.Fragment>
  )
}

Lookup Table

function getUserType(type) {
  switch (key) {
    case 'ADMIN':
      return '관리자';
    case 'INSTRUCTOR':
      return '강사';
    case 'STUDENT':
      return '수강생';
    default:
      return '해당 없음';
  }
}

getUserType('ADMIN'); // 관리자
// object LookupTable 리팩토링
const USER_TYPE = {
  ADMIN: '관리자',
  INSTRUCTOR: '강사',
  STUDENT: '수강생',
  UN: '해당 없음'
}

function getUserType(type) {
  return USER_TYPE[type] || USER_TYPE.UN;
}

getUserType('ADMIN'); // 관리자
getUserType(''); // 해당 없음

Object Destructuring