์กฐ๊ฑด๋ฌธ ๊ธฐ์ด :
1. ifโฆelse ifโฆ๋ฌธ๋ฒ
if (truthy or falsy ํ ๊ฐ) {
//๊ดํธ์์ ๋ํ ๊ฒฐ๊ณผ๊ฐ
}
else if (/*if์์ ๊ดํธ๊ฐ falsyํ ๊ฒฝ์ฐ*/) {
//๊ดํธ์์ ๋ํ ๊ฒฐ๊ณผ๊ฐ
}
else {
//if ์ else if์ ๋ํ ์กฐ๊ฑด์ด ๋ชจ๋ ๋ค ๋ง์กฑํ์ง ์์ ๋์ ๊ฐ
}
์กฐ๊ฑด๋ฌธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ๋ฌธ๋ฒ์ ํด๋นํ๋ค. ์ฌ๊ธฐ์ ์ฃผ์ํด์ผ ํ ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๊ฑฐ์ง์ผ๋ก ์ทจ๊ธํ๋ ๊ฐ์ด ์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก
์ ๋ํ ๊ฐ์ false ๊ฐ์ผ๋ก ์ทจ๊ธ๋๋ค.
2. if ์ค์ฒฉ๋ฌธ
if (truthy or falsy ํ ๊ฐ) {
if (์ฒซ๋ฒ์งธ์ ํด๋น๋๋ฉด์) {
// ๋๊ฐ์ง if์ ํด๋น๋๋ ๊ฐ
}
else {
// ์ฒซ๋ฒ์งธ if ์กฐ๊ฑด์๋ ํด๋น๋์ง๋ง ๋๋ฒ์งธ๋ ํด๋น์ด ์๋ ๋
}
}
์ด๋ฐ์์ผ๋ก if ๋ฌธ์ ์ค์ฒฉํด์ ์ฌ์ฉํ ์ ๋ ์๋ค.
์กฐ๊ฑด๋ฌธ 13๋ฒ :
์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ ์์ ํด๋นํ๋ ๋ฑ๊ธ์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
let output = convertScoreToGradeWithPlusAndMinus(91);
console.log(output); // 'A-'
if (100 < score || score < 0) {
return 'INVALID SCORE';
}
let ones = score % 10;
let plusAndMinus = '';
let grade = '';
if (ones >= 0 && ones <= 2) {
plusAndMinus = '-';
}
else if (ones >= 8 && ones <= 9) {
plusAndMinus = '+';
}
if (score === 100) {
return 'A+'
}
else if (score >= 90) {
grade = 'A';
}
else if (score >= 80) {
grade = 'B';
}
else if (score >= 70) {
grade = 'C';
}
else if (score >= 60) {
grade = 'D';
}
else {
return 'F';
}
return grade + plusAndMinus;
์ฒ์ ์ ํ์ ๋๋ ์๋นํ ์ด๋ ค์ ์๋ ๋ฌธ์ !!:thumbsup:
๊ณ์ ๋ฐ๋ณตํ๋ค๋ณด๋โฆ ์ด์ ๊ธฐ๊ณ์ ์ผ๋ก ํธ๋ ๊ฒฝ์ง์ ์ค๋ฅด๊ฒ ๋์๋ค..
๊ทธ๋๋ ๊ทธ๋งํผ ์ค๋ ฅ์ด ๋์๋ค๋ ๋ป์ด๋ ๋ฟ๋ฏํ๋ค :)
๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ๊ธฐ์ด :
1. ๋ฌธ์์ด ์์ฑ ๋ฐ ๋ฉ์๋ ์ ๋ฆฌ!
//String()
let num = 123;
let str = String(num);
console.log(str) // '123';
//indexOf()
let str = 'hello world';
let findIndex = str.indexOf('w'); // ์ฐพ๊ณ ์ถ์ ๋ฌธ์๋ฅผ ๋ฃ๋๋ค.
console.log(findIndex) // 6;
//replace()
let str = 'hello world';
let replaceStr = str.replace('hello', 'hi'); // ๋ฌธ์๋ฅผ ๋ฐ๊พผ๋ค.
console.log(replaceStr) // 'hi world';
//substring(), substr()
let str = 'hello world';
let sliceStr1 = str.substr(0, 5);
let sliceStr2 = str.substr(6);
console.log(sliceStr1); // hello;
console.log(sliceStr2); // world;
//split()
let str = 'hello world';
let splitStr1 = str.split(''); // ๊ดํธ์์๋ ์ชผ๊ฐ๋ ๊ธฐ์ค์ ๋ฃ์ด์ค๋ค.
let splitStr2 = str.split(' ');
console.log(splitStr1); //["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"];
console.log(splitStr2); //["hello", "world"]
//๋จ, split์ ๋ฐฐ์ด๋ก ๋ณํ๋ค๋ ์ ์ ๋ช
์ฌํ์!
//concat()
let str1 = 'hello';
let str2 = 'world';
let concatStr = str1.concat(str2); // 1๊ณผ 2๋ฅผ ํฉ์นจ.
console.log(concatStr) // 'helloworld'
//trim()
let str = ' hello world ';
let result = str.trim();
console.log(result); // 'hello world'
// ์ ์ชฝ ๋์ ๊ณต๋ฐฑ๋ง ์ก์์ฃผ๋ ๋ช
์ฌํ์!
Advanced Challanges
- ๋์ด์ฐ๊ธฐ (โ โ) ๋ก ๋ฌธ์์ด์ ๊ตฌ๋ถํ์ฌ, ๋ฐฐ์ด๋ก ๋ฐ๊ฟ ์ ์๋ค. str.split(โ โ).join(โ โ)
let str = 'hello world';
let arr = str.split(' '); // ['hello', 'world']
let joinArr = arr.join(' '); // 'hello world' ๋ค์ ๋ฌธ์์ด๋ก ๋ณํ
let result = str.split(' ').join(' '); // ๋ฉ์๋ ์ฒด์ด๋
console.log(result) // 'hello world'
parseFloat, parseInt ์ ๋ฆฌ :
1. parseFloat
console.log(parseFloat('12.34')); // 12.34
console.log(parseFloat('12.34 56.78')); // 12.34
console.log(parseFloat(' 12.34')); // 12.34
console.log(parseFloat('A 12.34')); // NaN
console.log(parseFloat('12.34abcd55')); // 12.34
// ์ด ๊ฒฝ์ฐ 55๋ ์ซ์๋ก ๋ณํํ ์ ์์ง๋ง 'abcd' ๋ค์ ์์ผ๋ฏ๋ก ๋ฌด์๋๋ค.
2. parseInt
//parseInt(string, radix)
/* radix =
- optional
- string ๋ฌธ์์ด์ ์ฝ์ ์ง๋ฒ(์์ ์ง๋ฒ ์ฒด๊ณ์ ์ง๋ฒ)
- 2~36์ ์
*/
console.log(parseInt('10', 2)); // 2
// 10์ 2์ง๋ฒ์ผ๋ก ๋ณํํ๊ธฐ ๋๋ฌธ์ 2๊ฐ ๋์จ๋ค.
console.log(parseInt("2", 2)); // NaN
// 2์ง๋ฒ์์๋ 2๋ผ๋ ์ซ์๊ฐ ์์ผ๋ฏ๋ก NaN์ ๋ฆฌํด.
console.log(parseInt("0xF")); // 15
// ์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ธ ๋ฌธ์์ด์ด '0x' ๋๋ '0X'๋ก ์์ํ๋ค๋ฉด
// ์๋์ผ๋ก ๋ฌธ์์ด์ 16์ง์๋ก ์ฝ์ด์, 10์ง์๋ก ๋ณํํ ๊ฐ์ ๋ฆฌํด.
console.log(parseInt("0XF")); // 15
console.log(parseInt("0XFkk")); // 15
โป parseInt() ์ฌ์ฉ ์ ๋ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ฅผ ์
๋ ฅํ์ง ์์๋,
์ฒซ ๋ฒ์งธ ๋ฌธ์์ด ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๋ฐ๋ผ ์๋์ผ๋ก ์ง๋ฒ์ ๊ตฌ๋ถํ๊ธฐ๋ ํ๋ค.
๋ฐ๋ผ์, ํน์ ๊ฐ์ ๋ฐ๋ฅธ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด
๋ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ธ radix ๊ฐ์ ๋ฐ๋์ ์
๋ ฅํด ์ฃผ๋ ๊ฒ์ด ์ข๋ค.
NaN ์ ๋ฆฌ :
1. ์ค๋ ๋ฐฐ์ด NaN์ ๋ํ ๊ฐ๋ !
mdn : ์ ์ญ NaN ์์ฑ์ Not-A-Number(์ซ์๊ฐ ์๋)๋ฅผ ๋ํ๋ ๋๋ค.
NaN์ ๋ค๋ฅธ ๋ชจ๋ ๊ฐ๊ณผ ๋น๊ต(==, !=, ===, !==)ํ์ ๋ ๊ฐ์ง ์์ผ๋ฉฐ, ๋ค๋ฅธ NaN๊ณผ๋ ๊ฐ์ง ์์ต๋๋ค.
NaN์ ํ๋ณ์ Number.isNaN() ๋๋ isNaN()์ ์ฌ์ฉํ๋ฉด ์ ์ผ ๋ถ๋ช ํ๊ฒ ์ํํ ์ ์์ต๋๋ค.
์๋๋ฉด, ์ค๋ก์ง NaN๋ง์ด ์๊ธฐ์์ ๊ณผ ๋น๊ตํ์ ๋ ๊ฐ์ง ์์์ ์ด์ฉํ ์๋ ์์ต๋๋ค.
NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true
๋ง์ง๋ง์ผ๋ก ์ดํด๋ฅผ ๋๊ธฐ ์ํ ์ฌ์งโฆ!
๐ ๋ด์ผ์ TIW(today I Will)
๋ฐ๋ณต๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ-์๊ณ ๋ฆฌ์ฆ ๋ฌธ์