Number 함수 이용(문자열 or 불리언)
+ 더하기 연산자를 앞에 붙이지 (문자열 or 불리언)
let num = +("20"); typeof Number
let num = +("스물"); typeof NaN;
(문자열 or 불리언) * 1 곱하기 1 연산을 한다.
let num = ("20.5") x1 ; 20.5 Number
parseInt 함수 이용 (정수 문자열)
parseFloat 함수 이용 (실수 문자열)
Number.isInteger(0); // true
Number.isInteger(1); // true
Number.isInteger(-100000); // true
Number.isInteger(9999999999999); // true
Number.isInteger(0.1); // false 실수
Number.isInteger(Math.PI); // false 3.14 파이
Number.isInteger(NaN); // false NaN
Number.isInteger(Infinity); // false Infinity
Number.isInteger(-Infinity); // false Infinity
Number.isInteger('10'); // false 문자
Number.isInteger(true); // false 불리언
Number.isInteger(false); // false 불리언
Number.isInteger([1]); // false 배열
Number.isInteger(Number(true)); // true 명시적 형변환으로 true를 Number type이라 명시 => true가 1로 변형됐다.
let age = "12.1472";
console.log(parseInt(age)); // 12
let age2 = 10.2938;
console.log(parseInt(age2)); // 10
let age = "12.1472aaa";
console.log(parseFloat(age)); // 12.1472
let age2 = "10.2938";
console.log(parseFloat(age2)); // 10.2938
let age3 = "스물";
console.log(parseFloat(age3)); // NaN
let age4 = "aaa 123.567 aaa";
console.log(parseFloat(age4)); // NaN
let age5 = "123.567 aaa";
console.log(parseFloat(age5)); // 123.567
let age6 = "10 11 12";
console.log(parseFloat(age6)); // 10
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true
// 예를 들면 이들은 global isNaN()으로는 true가 됐을 것임
Number.isNaN("NaN"); // false
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN("blabla"); // false
// 모두
Number.isNaN(true); // false
Number.isNaN(null); // false
Number.isNaN(37); // false
Number.isNaN("37"); // false
Number.isNaN("37.37"); // false
Number.isNaN(""); // false
Number.isNaN(" "); // false
- charAt()
문자열에 접근하는 함수
let text = "hello";
text.chatAt(2); // h[0] e[1] l[2] l[3] o[4] => l
- charCodeAt()
- startsWith()
특정문자로 시작하는지 확인하는 함수
let text = "hello";
text.startsWith(searchStr); // searchStr 탐색할 문자열
text.startsWith(searchStr,position); // searchStr 탐색할 문자열, position 탐색을 시작할 위치
반환값은 true, false
- endsWith()
특정문자로 끝나는지 확인하는 함수
let text = "hello";
text.endsWith(searchStr); // searchStr 탐색할 문자열
text.endsWith(searchStr,position); // searchStr 탐색할 문자열, position 탐색을 시작할 위치
반환값은 true, false
let text = "hello";
let one = text.startsWith("he"); // true
let two = text.startsWith("el"); // false
let three = text.startsWith("123"); // false
let four = text.startsWith("el",1); // true
let text = "hello";
let one = text.endsWith("he"); // false
let two = text.endsWith("lo"); // true
let three = text.endsWith("123"); // false
let four = text.endsWith("o",5); // true
- indexOf()
문자열에서 검색하는 문자열과 같은 '첫번째' 인덱스를 반환하는 함수
let text = "hello";
text.indexOf(searchStr);
매개변수 searchStr는 탐색할 문자열
반환값은 [인덱스]
일치하는 값이 없는 경우 -1을 반환
|h|e|l|l|o| |
|0|1|2|3|4|-1|
let text = "hello";
let one = text.indexOf("l"); // 2
let two = text.indexOf("el"); // 1
let three = text.indexOf("123");// -1
- lastIndex()
- 문자열[index]
인덱스를 통해서 직접 문자열에 접근하는 방법
let text = "hello";
let one = text[0] // "h";
let two = text[1] // "e";
let three = text[2] // "l";
let four = text[3] // "l";
let five = text[4] // "o";
let text = 123 + ""; // 값 : 123 type : string
let text = "hello";
text.replace( searchStr, replaceStr );
let rtn = text.replace("l","L"); // 반환값 : heLlo
let rtn2 = text.replaceAll("l","L"); // 반환값 : heLLo
매개변수 searchStr은 문자열에서 탐색
매개변수 replaceStr은 변환할 문자
반환값은 변환된 값
let text = "HELLO";
let text2 = "hello";
text.toLowerCase();
text2.toUpperCase();
let rtn = text.toLowerCase(); // 변환값 : hello type : string
let rtn2 = text2.toUpperCase(); // 변환값 : HELLO type : string
문자열과 문자열을 합치는 것
let text = "hello";
let text2 = "world";
let text3 = 123;
let rtn = text + " " + text2;
let rtn = text3 + " " + text;
document.write(rtn); // 변환값 : hello world type : string
document.write(rtn2); // 변환값 : 123 hello type : string
let text = "hello";
let text2 = "world";
let rtn = text.concat(text2); // 변환값 : helloworld type : string
let text3 = ["h", "e", "l"];
let text4 = ["l", "o", "!"];
let rtn2 = text3.concat(text4); // 변환값 : h,e,l,l,o,! type : object
let text = ["h","e","l","l","o"];
let rtn = text.join(); // 변환값 : h,e,l,l,o type : string
let rtn2 = text.join(""); // 변환값 : hello type : string
let rtn3 = text.join(","); // 변환값 : h,e,l,l,o type : string
let text = ["apple", 815];
text[0] // 값 : apple type : string
text[1] // 값 : 815 type : number
text.length // 값 : 2 (배열의 길이)
let text = "a_b_c";
text.split(구분자);
let arr = text.split("_");
document.write(arr); // 반환값 : a,b,c ⇨ ["a","b","c"] type : object
document.write(arr[0]); // 반환값 : a
document.write(arr[1]); // 반환값 : b
document.write(arr[2]); // 반환값 : c
document.write(arr.length); // 반환값 : 3
let text = "king";
let arr = Array.from(text);
document.write(arr); // 반환값 : k,i,n,g ⇨ ["k","i","n","g"] type : object
document.write(arr[0]); // 반환값 : k
document.write(arr[1]); // 반환값 : i
document.write(arr[2]); // 반환값 : n
document.write(arr[3]); // 반환값 : g
document.write(arr.length); // 반환값 : 4
let text = "hello";
let rtn = [...text];
document.write(rtn); // ["h","e","l","l","o"] type : object
문자열 안에 사용
백틱(`) 을 이용
표현식` ${expression} ` 을 이용
let text = "hello\nWorld"; // 기존 방식
let text2 = `hello
World`;
document.write(text2); //hello World type : string
let text = "hello World";
let textType = typeof text;
let rtn = `값 : ${text} 타입 : ${textType}`;
document.write(rtn); // 값 : hello World 타입 : string
let text1 = "hello";
let text2 = "world";
let rtn = `${text1} ${text2}`;
document.write(rtn); // hello world
const a = [1, 3, 4, 5];
const b = () => {
for (let i = 0; i < a.length; i++) {
return b = i+;
}
console.log(b)
}
function solution(orders, n) {
const last = orders[orders.length-1]
const checkArr = [...Array(last+1).keys()].slice(1);
const findNum = checkArr.filter(i => !orders.includes(i))
let answer = findNum[n-1]
return answer
}
📍이게 몇개는 통과하는데 안되는 것도 있어서 보완이 필요함
일단 예시는 통과했는데 예외가 뭔지를 모르겠음
그냥 sort()를 쓰면 [ 1, 2, 1000 ]이 아니라 [ 1, 1000, 2 ] 로 나와서 꼭 내림차순((a, b) => a - b)임을 명시해줘야 함
var answer = 0;
const arr1 = arr.sort((a, b) => a - b)
return answer = arr1[0];;
우선 2중 for문 으로 작성해서 성공하긴 했는데
좀 더 줄일 수 있을 것 같음
function solution(n) {
let count = 0;
for(let i=0; i<=n; i++){
let change = i.toString(2);
let bin = change.split('');
for(let j=0; j<=bin.length; j++){
bin[j] == "1" ? count+=1 : count
}
}
return count;
}