Be careful about chaining conditions

This may dangerous, because it's harder to debug.

For example:

  expected.key === actual.key &&
  expected.value === actual.value &&
  expected.concern === actual.concern;

If we broke it down to multiple if conditions it makes it easier to debug.

if (expected.key === actual.key) {
  return false;

if (expected.value === actual.value) {
  return false;

if (expected.concern === actual.concern) {
  return false;

return true;

Pros for using multiple conditions:

  • If you use Exceptions instead of return statements, you can easily get a stack trace which is extremly useful.

  • Easier usage of print style debugging.

Cons for using multiple if conditions:

  • Longer function statements.

Last updated