Simple Prac

이성규·2022년 11월 18일
0

앞서 공부하고 정리한 개념들을 바탕으로 간단한 예제를 풀어보는 시간을 가져보자.

🔷 자료형

console.log(typeof NaN) // number
  • 빈배열은 무조건 숫자로 강제 변환한다. [] => 0

🔷 자료형

console.log([] == ![]) // true
  • 0 == ![ ], 0 == false, 0 == 0

🔷 자료형

const num = 01234;
console.log(num); // 668
  • 숫자 맨앞 0을 붙이면 8진수로 계산, 8^3 1 + 8^2 2 + 8 1 + 4 1 = 668

🔷 자료형

console.log("Hello"+ +"World") // HelloNaN
  • 연산자 사이에 빈공간이 생겨서 NaN으로 출력..?

🔷 자료형, 형변환, + 연산자

console.log(+"111"); // 111

🔷 자료형, 형변환, + 연산자

console.log(+[]); // 0
  • [] => 0으로 반영, 참고

🔷 자료형, 형변환, + 연산자

+true // 1

🔷 자료형, 형변환

console.log([]+{}) // [object Object],
  • Object 끼리 연산 시, Primitive 타입으로 변환한다. 참고
    Primitive Type(원시값) : (Number), 불린(Boolean), null, undefined, 문자열(String)
    Reference Type(참조값) :객체(Object), 배열(Array), 함수(function)

🔷 형변환 / parseInt()

console.log(parseInt(null)); // NaN
  • string을 정수로 변환한 값을 리턴합니다.
    만약, string의 첫 글자를 정수로 변경할 수 없으면 NaN (Not a Number) 값을 리턴. 참고

    parseInt (string, radix);

🔶 radix

  • optional
  • string 문자열을 읽을 진법(수의 진법 체계의 진법)
  • 2~36의 수

🔷 형변환 / parseInt()

console.log(parseInt(null,24)); // 23

parseInt( String(null), 24 ) === 23
parseInt( "null", 24 ) === 23
parseInt( "n", 24 ) === 23

  • 24진법의 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, ..., n
    언어 사양에 따르면 S가 기수-R 숫자가 아닌 문자를 포함하는 경우 Z를 첫 번째 해당 문자 앞의 모든 문자로 구성된 S의 하위 문자열로 둔다. 그렇지 않으면 Z를 S라고 한다.
    구문 분석 과 같은 C 스타일 정수 리터럴이 15L제대로 수행되도록 보장하는 부분이므로 위의 내용은 다음과 동일하다.
    "n"위 숫자 목록의 23번째 문자이므로 23

🔷 Math / min() / max()

console.log(Math.min() < Math.max()); // false
  • Math.min()
    Math.max() => -infinity 이므로 false

🔶 Math.min(), Math.max()

Math.min(value1, value2, ..., valueN)
Math.max(value1, value2, ..., valueN)
  • 매개변수로 받는 값은 배열이 아닌 단순히 입력된 숫자이다. 즉, 고유한 변수를 기대한다.
  • 입력된 모든 값들은 숫자형으로 변환될 수 있는 타입이어야 한다.
    그렇지 않으면 NaN을 반환하며, 매개변수를 생략하면 -Infinity를 반환한다.[참고]
console.log(Math.max(1,3,4)); // 4
console.log(Math.max('1','3','4')); // 4 - 문자열도 가능
console.log(Math.max()); // -Infinity

const a = 1;
const b = 123;
console.log(Math.min(a,b)); // 1

const arr = [1, 100, 40, 20, 5]
console.log(Math.min(arr)) // NaN - 배열은 숫자형으로 변환 불가능하므로 NaN 반환
console.log(Math.min(...arr)) // 1

🔷 Array()

console.log([,,,].length); // 3
// 배열 생성 (배열 크기 지정)
// 쉼표 개수만큼 크기가 지정됨
var arr = [,,,]; 

for (var i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}        
// 값이 할당되지 않아서 undefined 3번 출력 

[참고]


🔷 Array / join()

console.log([,,,].join()) // ,,

🔶 join()

  • 배열의 모든 요소를 연결해 하나의 문자열로 만듦.
let arr = ['사과', '바나나', '수박'];
	
	let arrJoin1 = arr.join();
	console.log(arrJoin1);  // 사과,바나나,수박
	
	let arrJoin2 = arr.join('');
	console.log(arrJoin2);  // 사과바나나수박

	let arrJoin3 = arr.join('//');
	console.log(arrJoin3);  // 사과//바나나//수박
  • join() 메서드만 사용할 경우 => ','가 기본적으로 붙어나옴. ex) 사과,바나나,수박
  • join('') 메서드 안에 ''을 넣어주면 배열 사이사이 가 다 붙어서 문자열이 나옴. ex)사과바나나수박
  • join('-') 메서드 안에 문자열을 넣으면 배열 사이사이 그 문자열을 넣어줌. ex) 사과-바나나-수박

🔷 Array / const

const a = [1,2,3];
a[1] = "perl";
console.log(a); // [1, 'perl', 3]
  • 배열의 순서는 0,1,2로 보고 배열의 1번째인 2는 a[1]="perl"로 바꾸기 실행

🔷 Array / indexOf()

const b = [1, 3, 5];
b[-1] = "perl";
console.log(b[-1]);                 // perl
console.log(b[b.indexOf(-1)]);      // perl
console.log(b[b.indexOf("나비")]);   // perl
  • 배열의 [-1]은 배열의 끝부분을 뜻한다. b[-1] = perl
  • indexOf(-1) = b[-1] = perl
  • "나비"는 문자열에 없기 때문에 -1, indexOf(-1) = b[-1] = perl

🔶 indexOf()

string.indexOf(searchvalue, position)

indexOf 함수는, 문자열(string)에서 특정 문자열(searchvalue)을 찾고,
검색된 문자열이 '첫번째'로 나타나는 위치 index를 리턴합니다.

  • 파라미터
    searchvalue : 필수 입력값, 찾을 문자열
    position : optional, 기본값은 0, string에서 searchvalue를 찾기 시작할 위치

  • 찾는 문자열이 없으면 -1을 리턴한다.
    문자열을 찾을 때 대소문자를 구분한다. [참고]

profile
개발자를 위한 발걸음

0개의 댓글