diff --git a/README.md b/README.md index 3679b4a98e..df7c5e0230 100644 --- a/README.md +++ b/README.md @@ -568,9 +568,27 @@ -## Comparison Operators & Equality +## Comparison Operators , Conditional (Ternary) Operators & Equality - Use `===` and `!==` over `==` and `!=`. + - Conditional operators is frequently used as shortcut for if statement and takes three operands. + ```javascript + condition ? expr1 : expr2 + ``` + - If condition is true, the operator returns the value of expr1; otherwise, it returns the value of expr2. + ```javascript + //without ternary operator + var now = new Date(); + var greeting = "Good"; + if (now.getHours() > 17) + greeting += " evening."; + else + greeting += " day."; + + //with ternary operator + var now = new Date(); + var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day."); + ``` - Comparison operators are evaluated using coercion with the `ToBoolean` method and always follow these simple rules: + **Objects** evaluate to **true** @@ -609,6 +627,30 @@ if (collection.length) { // ...stuff... } + + // good + var superpower = isSuperman(user) ? 'flight' : 'none'; + // bad + for (var i = 1; i <= 16; i++) { + var msg = i % 3 === 0 ? i % 5 === 0 ? 'FizzBuzz' : 'Fizz' : i % 5 === 0 ? 'Buzz' : ''; + console.log(msg || i); + } + + // good + for (var i = 1; i <= 16; i++) { + var msg = ''; + if (i % 3 === 0) { + if (i % 5 === 0 { + msg = 'FizzBuzz'; + } else { + msg = 'Fizz'; + } + } else if (i % 5 === 0) { + msg = 'Buzz' + } + console.log(msg || i); + } + ``` - For more information see [Truth Equality and JavaScript](http://javascriptweblog.wordpress.com/2011/02/07/truth-equality-and-javascript/#more-2108) by Angus Croll.