[JavaScript] 위코드 JS 중간고사 정리
문제 01. isEven
- 나의 풀이
function isEven(num) {
const result = num % 2;
const message = (result === 0) ? "짝수 입니다." : "짝수가 아닙니다.";
return message;
}
- Model Solution
const is_even = num => {
if(num % 2 === 0){
return "짝수 입니다"
} else
return "짝수가 아닙니다"
}
- 다른 풀이
const isEven = num => {
return num % 2 ? "짝수 입니다" : "짝수가 아닙니다"';
}
- 놓친 점 & 질문
1) arrow function : 함수 선언할 때,화살표 함수
로 선언 해보는 것
2) 삼항연산자 true, false 똑똑하게 사용하기 :===0
조건문을 굳이 안넣어도, truthy, falsy 개념을 활용하면 더 간단하게 코드를 짤 수 있다. (0, 1은 false, true)
변수 ? true일 때 값 : false일 때 값
형식을 기억해서 종종 써먹어야겠다.
3) message 변수를 선언했어야 했을까? : 내가return
하는 데이터의 의미를 명확하게 하고 싶어서 따로 변수를 선언했는데, 현업에서는 이렇게 잘 안하는지 물어봐야겠다.
문제 02. calculateTotal
- 나의 풀이
function calculateTotal(amount) {
const tip = amount * 0.15;
const tax = amount * 0.095;
amount += (tip + tax);
return amount;
}
- Model Solution
const calculate_total = num => {
return num + num * 0.095 + num * 0.15;
}
- 다른 풀이
function calculate_total (price) {
let tax = price * 9.5 / 100;
let tip = price * 15 / 100;
return price + tax + tip;
}
- 놓친 점 & 질문
1) 변수를 따로 선언하는 건 역시 별로인지? : 의미를 담고 싶어서tip, tax
변수를 따로 선언했는데,num
하나로 다 해결하는게 나은지 궁금하다ㅠ
2) return 문에 표현식 써보기 : 항상 단어 하나만 return 했는데,표현식
을 써도 좋을 것 같다. 변수를 따로 선언 안하고 표현식을 썼을 때 성능상 이점이 있는지 궁금하다.
3) 비율 / 100 :amount
에 직접 값을 곱해주는 방식을 사용했는데,9.5 / 100
방식으로 해도 쓸모가 있을 것 같다. 예를 들어 9.5 부분을 변수로 선언하면, tax, tip 비율이 달라져도 편하게 사용할 수 있을 것 같다.
※ 참고 - 백분율
수를 100과의 비로 나타내는 방법이다. 비율에 100을 곱한 값이며 기호는 %이다.
let tax = 9.5; let tip = 15; return num + (num * tax / 100) + (num * tip / 100);
문제 03. getPrefix
- 나의 풀이
function getPrefix(str) {
str = str.substr(0, str.indexOf('-'));
return str;
}
- model solution
function get_prefix(word) {
return word.split('-')[0];
}
- 다른 풀이
let get_prefix = string => {
let hyphen = string.indexOf('-');
return hyphen === -1 ? string : string.slice(0, hyphen);
}
- 놓친 점 & 질문
문제 04. getFind
- 나의 풀이
function getFind(filter, sentence) {
for (let i = 0; i < sentence.length; i++) {
if (filter === sentence[i]) {
return i;
} else {
continue;
}
}
return -1;
}
- model solution
function get_find(filter, sentence) {
for (let i = 0; i < sentence.length; i++) {
if (sentence[i] === filter) {
return i;
}
}
return -1;
}
- 다른 풀이
function get_find(text, string) {
let strIndex = string.match(text);
return strIndex === null ? -1 : strIndex.index;
}
function get_find(text, string) {
let strIndex = string.search(text);
return strIndex;
}
- 놓친 점 & 질문
문제 05. findLongestWord
- 나의 풀이
function find_longest_word(arr) {
let max = 0;
let index = 0;
for (let i = 0; i < arr.length; i++) {
if (max < arr[i].length) {
max = arr[i].length;
index = i;
}
}
return arr[index];
}
- model solution
function find_longest_word(arr) {
let longest = arr[0];
for(let i = 0; i < arr.length; i++) {
if(arr[i].length > longest.length) {
longest = arr[i];
}
}
return longest;
}
- 다른 풀이
function find_longest_word(strArr) {
let longestWord = strArr[0];
for (let i in strArr) {
longestWord.length < strArr[i].length ? longestWord = strArr[i] : longestWord;
}
return longestWord;
}
- 놓친 점 & 질문
Author And Source
이 문제에 관하여([JavaScript] 위코드 JS 중간고사 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tyui3185/TIL-위코드-JS-중간고사-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)