CC-01: Conditionals
with Carmen Salas • 2024/10/02
Truthys and Falsys
Truthy JS values:
'0'
- a string containing a single zero'false'
- a string containing 'false'[]
- empty array{}
- empty objectfunction(){}
- an empty function
Falsy JS values:
false
0
zero as a number and-0
minus zero as a number''
,""
- empty stringsnull
undefined
NaN
Important tidbit:
// these are the only ways for `null` and `undefined` to be truthy:
null == null
null == undefined
undefined == undefined
undefined == null
typeof
Hierarchy in JS:
typeof
Hierarchy in JS:.
├── boolean
├── number
│ ├── NaN
│ └── number
├── object
│ ├── Array
│ ├── null
│ └── object
├── string
└── undefined
Conditionals Overview
if () {} else if () {} else {}
Comparison Operators
The strict equality operator ===
always considers operands of different types to be different.
not all languages implement this operator!
'1' == 1
'1' === 1
Code Challenge
Write a function named
greatestOfTwo
that takes in two integer arguments and returns the largest of both arguments. You can assume both integers will be different values.
const greatestOfTwo = (a,b) => {
if (a == b) {
if (a == undefined) {
return 'No arguments were passed';
}
} else if (a == undefined) {
return 'Only one argument was passed';
} else if (b == undefined) {
return 'Only one argument was passed';
} else {
return (a > b) ? a : b;
}
}
// tests
console.log(greatestOfTwo(14,1)); // returns 14
console.log(greatestOfTwo(-2,2)); // returns 2
console.log(greatestOfTwo()); // "No arguments were passed"
console.log(greatestOfTwo(-2)); // "Only one argument was passed"
Write a function named
areBothSame
, that takes in two arguments and returns true if both arguments are truthy in value, and returns false if not.
const areBothSame = (a,b) => {
if (a == b) {
if (a == undefined) {
return 'No arguments were passed';
}
return true;
} else if (a == undefined) {
return 'Only one argument was passed';
} else if (b == undefined) {
return 'Only one argument was passed';
} else {
return false;
}
}
// tests
console.log(areBothSame(true,1)); // returns true
console.log(areBothSame("2",2)); // returns true
console.log(areBothSame("5",2)); // returns false
console.log(areBothSame(1)); // "Only one argument was passed"
console.log(areBothSame()); // "No arguments were passed"
Write a function named
areBothEqual
, that takes in two arguments and returns true if both arguments are the same in data type and value, and returns false if they are not.
const areBothEqual = (a,b) => {
if (a === b) {
if (a === undefined) {
return 'No arguments were passed';
}
return true;
} else if (a == undefined) {
return 'Only one argument was passed';
} else if (b == undefined) {
return 'Only one argument was passed';
} else {
return false;
}
}
// test
console.log(areBothEqual("2", "2")); // returns true
console.log(areBothEqual("2", 2)); // returns false
console.log(areBothEqual(true, 1)); // returns false
console.log(areBothEqual(7, 7)); // returns true
console.log(areBothEqual(7)); // "Only one argument was passed"
console.log(areBothEqual()); // "No arguments were passed"
Last updated