[JavaScript Algorithm] Type Check & Conversion - DAY 5

Dia Lee·2023년 1월 6일
0

Algorithm

목록 보기
7/7
post-thumbnail

💡 Intro

오늘은 필테 갔다와서 조금 늦었지만...!
낮에 정리해놓은거 쓰면 되지롱ㅎ_ㅎ
오늘은 타입체크하는거랑 형변환하는 메서드 정리!
String이랑 Number 위주로^>^

✅ typeof

피연산자의 자료형을 나타내는 문자열을 return!

코드


console.log(typeof 42);
// "number"

console.log(typeof 'blubber');
// "string"

console.log(typeof true);
// "boolean"

console.log(typeof undeclaredVariable);
// "undefined"

console.log(typeof [1,2,3]);
// "object"

배열은 object의 특수한 형태로서 "object" return!.

🧐 객체가 배열인지 확인하려면?
isArray() 메서드 사용~!


✅ Number

!!Number(val)는 문자열이 숫자일 때 true return!

🧐 인자로 전달된 문자열이 숫자 ?
Number 객체 return

🧐 숫자가 아니면 ?
return NaN.

🧐 !을 두번 붙이면 ?
NaN = false
Number = true

코드


console.log(Number('10'));    // 10
console.log(!Number('10'));   // false
console.log(!!Number('10'));  // true

console.log(Number('aaa'));   // NaN
console.log(!Number('aaa'));  // true
console.log(!!Number('aaa')); // false

isNaN()이나 ECMAScript 2015에서 추가된 isNaN() 함수의 더 엄격한 버전 Number.isNaN() 도 있는데 나한테는 좀 아리까리...ㅜ


✅ Type Conversion

  • 문자형 ➡️ 숫자형

    parseInt()
    parseFloat()
    Number()
var num1 = "100";
var num2 = "100";
      
console.log(num1 + num2); //100100
console.log(Number(num1) + Number(num2));//200
      
num1 = "100";
num2 = "100.21";
      
console.log(parseInt(num1)); //100
console.log(parseInt(num2)); //100

console.log(parseFloat(num1)); //100
console.log(parseFloat(num2)); //100.21
      
console.log(Number(num1)); //100
console.log(Number(num2)); //100.21
  • 숫자형 ➡️ 문자형

toString()
toFixed()

let x = 100;
let y = 100;
      
console.log(x + y); //200
console.log(x + "" + y); //100100
console.log(String(x) + String(y)); //100100
      
let x2 = 100;
let y2 = 100.123456;
      
console.log(String(x1)); //"100"
console.log(String(x2)); //"100.123456"

console.log(x1.toString()); //"100" : 10진수
console.log(x1.toString(2));//"1100100" : 2진수
console.log(x1.toString(8)); //"144" : 8진수
      
console.log(x2.toFixed()); //"100"
console.log(x2.toFixed(1)); //"100.1"
console.log(x2.toFixed(4)); //"100.1235"

❓응용문제 (이진수 더하기)

코딩테스트 연습 - 이진수 더하기

문제 설명

이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.


제한사항

  • return 값은 이진수를 의미하는 문자열입니다.
  • 1 ≤ bin1bin2의 길이 ≤ 10
  • bin1과 bin2는 0과 1로만 이루어져 있습니다.
  • bin1과 bin2는 "0"을 제외하고 0으로 시작하지 않습니다.

입출력 예

bin1bin2result
"10""11""101"
"1001""1111""11000"

입출력 예 설명

입출력 예 #1

  • 10 + 11 = 101 이므로 "101" 을 return합니다.

입출력 예 #2

  • 1001 + 1111 = 11000 이므로 "11000"을 return합니다.
const solution=(bin1, bin2) => (parseInt(`${bin1}`,2)+parseInt(`${bin2}`,2)).toString(2)

0개의 댓글