|JavaScript| JavaScript: Decision Making
Tags: javascript, html, css, webdev
Published: 2020-12-07 01:40:48

---
title: |JavaScript| JavaScript: Decision Making
published: true
description: 
tags: javascript, html, css, webdev
//cover_image: https://direct_url_to_image.jpg
---


           

              -Comparison Operators
              -Equality: Triple vs. Double Equals
              -Console, Alert, and Prompt
              -If Statements
              -Else-If
              -Else
              -Nesting Conditionals
              -Truth-y and False-y Values
              -Logical AND 
              -Logical OR
              -Logical NOT 
    
            
            
         

        
###Comparison Operators
> is greater than 
< is less than 
>= is greater than or equal to 
<= is less than or equal 
== is equality 
!= is not equal 
=== is strict equality 
!== is strict non-equality 



###Equality: Triple vs. Double Equals
== double equals checks for equality of value, but not equality of type. 
It puts both values to the same type and then compares them. Double equals does not care if the values are different types. 
This can lead to some unexpected results. 

1 == 1 is true 
1 == '1' is true 
Both integer 1 and string value '1' are the same for double equals even though they are two different data types. Double equals will convert the difference type and make them the same. 

=== triple equals does care about type and therefore would render 
1 == '1' as false. 



###Console, Alert, and Prompt

console.log() will print arguments to the console. 

```javascript
alert("This is a POP-Up Message")
```

```javascript 

prompt("please enter a number")

```

prompt is similar to alert except it will provide a text area to enter information. 


###If Statements
Conditionals is making decisions with code. 

If Statement will only runs code if given condition is true 

```javascript 

let rating = 3; 

if (rating === 3) {
  console.log("You are here!"); 
}

```

If the condition is false then nothing happens. 


###Else-If

Else If will only run if not the first thing, maybe the other thing??

```javascript 

let rating = 2; 

if (rating === 3) {
  console.log("You are here"); 
}
else if (rating === 2) {
  console.log("Maybe over here too?"); 
}

```

If the first part is false, then the other code might be right. 



###Else

Else will run if nothing else was true. 
It is a last resort solution to the problem. 

```javascript 

let rating = -99; 

if (rating === 3) {
console.log("You are here"); 
}
else if (rating === 2) {
console.log("Maybe over here too"); 
}
else {
console.log("You were nowhere to be found"); 
}

```


###Nesting Conditionals
Nesting 
It is possible to nest conditionals inside conditionals. 

We ask the end user these questions:
Password must be 6+ characters 
Password cannot include space 


```javascript 

let password = "cat dog"; 
if (password.length >= 6) {
  if (password.indexOf(' ') !== -1) {
 console.log("Password cannot include spaces"); 
}
else {
 console.log("Valid password!!"); 
}
}
else {
console.log("Password too short!"); 
}

```

It is useful to test conditionals inside other conditionals. 


###Truth-y and False-y Values
All JS values have an inherent truthyness or falsyness about them. 

Falsy values: 
    -false 
    -0 
    -""(empty string) 
    -null 
    -undefined 
    -NaN
Everything else is truthy


###Logical AND 
AND when both sides must be true, for the entire thing to be true. 

```javascript 

1 <= 4 && 'a' === 'a'; 

9 > 10 && 9 >= 9; 

'abc' .length === 3 && 1 + 1 === 4; 

```




###Logical OR
OR If one side is true, the entire thing is true. 

```javascript 

1 !== 1 || 10 === 10 

10/2 === 5 || null 

0 || undefined 

```









###Logical NOT 
!expressions returns true if expression is false 

```javascript 

!null 

! (0 === 0)

! (3 <= 4) 
    
```