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:
false0zero as a number and-0minus zero as a number'',""- empty stringsnullundefinedNaN
Important tidbit:
// these are the only ways for `null` and `undefined` to be truthy:
null == null
null == undefined
undefined == undefined
undefined == nulltypeof Hierarchy in JS:
typeof Hierarchy in JS:.
├── boolean
├── number
│ ├── NaN
│ └── number
├── object
│ ├── Array
│ ├── null
│ └── object
├── string
└── undefinedConditionals 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' === 1Code Challenge
Write a function named
greatestOfTwothat 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