From ac1bf0f90666057576c99f202da2fa4ccf56abde Mon Sep 17 00:00:00 2001 From: Suman Date: Tue, 21 Apr 2015 15:00:31 +0545 Subject: [PATCH 1/3] adding ternary operator along with example --- README.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3679b4a98e..2e32aacc52 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ 1. [Properties](#properties) 1. [Variables](#variables) 1. [Hoisting](#hoisting) - 1. [Comparison Operators & Equality](#comparison-operators--equality) + 1. [Comparison Operators, Conditional(Ternary) Operator & Equality](#comparison-operators--ternary--equality) 1. [Blocks](#blocks) 1. [Comments](#comments) 1. [Whitespace](#whitespace) @@ -568,9 +568,26 @@ -## 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** From 2b7e8bf19e7f5f039836e6f08ffb3e3901bfe11f Mon Sep 17 00:00:00 2001 From: Suman Date: Tue, 21 Apr 2015 15:11:51 +0545 Subject: [PATCH 2/3] adding ternary operator along with indenting --- README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 2e32aacc52..f135d851f7 100644 --- a/README.md +++ b/README.md @@ -578,15 +578,16 @@ - 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." + 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."); + 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: From 0d03664d7d96bf1a48ba3ca68a8a79f4f192d261 Mon Sep 17 00:00:00 2001 From: Suman Date: Thu, 30 Apr 2015 05:07:08 +0545 Subject: [PATCH 3/3] adding ternary operator in comparsion operator and equality --- README.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f135d851f7..df7c5e0230 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ 1. [Properties](#properties) 1. [Variables](#variables) 1. [Hoisting](#hoisting) - 1. [Comparison Operators, Conditional(Ternary) Operator & Equality](#comparison-operators--ternary--equality) + 1. [Comparison Operators & Equality](#comparison-operators--equality) 1. [Blocks](#blocks) 1. [Comments](#comments) 1. [Whitespace](#whitespace) @@ -627,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.