dev_eun

[JS] c++ 에서 javascript로 갈아타기 - 기본 코테 함수 본문

Web/vanilla js

[JS] c++ 에서 javascript로 갈아타기 - 기본 코테 함수

_eun 2021. 4. 29. 11:28

코테는 c++로만 이용해서 보다가 js 코테도 요즘 많이 생겨나고 있는 것 같아서 언제든 볼 수 있게 준비한다.

아주 많이 참고한 사이트

 

JavaScript로 만나는 세상 | JavaScript로 만나는 세상

처음 시작하는 사람들을 위한 JavaScript 교재

helloworldjavascript.net

 

수 연산은 동일 +, -, *, /, %, ++, --, +=, -=

object, array, function 등 참조형 변수들은 const로 선언해주는 게 맞다!

 

변수 선언

const var_const;	// 재할당 X, 하지만 참조형 변수 array, function, object에는 사용
let var_let;		// 재할당 O
var var_var;		// 재할당 O, 호이스팅때문에 요즘은 잘 안쓴다고 함.

 

for 문

기본 형식은 비슷하다

for(let i = 0;i<size;i++){

}

// 배열 사용
for(var e of array){

}

// Array, map, set 객체
array.forEach(() => {

})

// key에 대해서 접근
for(var k in obj){
	console.log(k, obj[k]);	// key, value
}

// 2차원 배열
for(const [u, v] of edges) {
  tree[u].push(v);
  tree[v].push(u);
}

 

배열

c++의 배열과 다르게 원소의 타입이 같지 않아도 된다.

함수와 객체 모두 담을 수 있다. 

arr = new Array() 	// 빈 배열 생성
arr[0] = 'apple'
arr[1] = 'banana'

arr = new Array(3)	// 길이 3인 빈 배열 생성

arr = new Array(1, 2, 3) // 이렇게 하지 말고
arr = Array.of(1, 2, 3) // 대신 이렇게

arr = ['apple', 'banna', 'grapes']	// 길이가 3인 배열 생성


// 배열의 길이
arr.length // 3


// 원소 추가
arr.push(3)

arr.fill(5) // 5로 가득 채우기

sort() 함수의 경우 인자로 함수를 전달해야 한다.

compare(a, b)라고 했을 때

음수 : a가 b 앞에 오도록

0 : a와 b가 같은 순서

양수 : b가 a 앞에 오도록

 

인자를 넣지 않을 경우에는 요소들을 string으로 바꾼 후 유니코드 코드포인트로 비교하기 때문에 원하지 않는 결과를 얻을 수도 있으니 주의하자.

let arr = [1, 2, 3, 4]
arr.unshift(5)	// 맨 앞에 추가, [5, 1, 2, 3, 4]
arr.shift()		// 맨 앞에 삭제, [1, 2, 3, 4]
arr.splice(1, 2, 'hello')	// 첫번째부터 2개를 3번째 인자와 바꿔치기, [1, 'hello', 4]
arr.splice(1, 1)	// 세 번째 인자를 안쓰면 그냥 삭제, [1, 4]
arr.splice(1, 0, 2, 3)	// 두 번째 인자가 0이면 원소 추가, [1, 2, 3, 4]

arr = [4, 3, 5, 1, 2]
arr.sort((x, y) => x - y); // [1, 2, 3, 4, 5]
let arr = [1, 2]
arr.concat([3, 4], [5, 6])
arr;	// [1, 2, 3, 4, 5, 6]

// 요소의 index 찾기
arr = ['a', 'b', 'a', 'c', 'd', 'e']
arr.indexOf('a')		// 0
arr.lastIndexOf9'a')	// 2
// 없을 경우 -1 리턴

arr.find(boolean 리턴하는 함수)
arr.findIndex

2차원 배열 만들기

const matrix = new Array(rowNum).fill().map(_ => []);
const matrix = new Array(rowNum).fill().map(() => new Array());

디버깅용 출력

console.log('hello wolrd')

 

Math 함수

// 상수
Math.E // 자연상수 (2.71...)
Math.PI // 원주율 (3.14...)

// 삼각함수, 로그함수, 지수함수
Math.sin // 사인
Math.cos // 코사인
Math.tan // 탄젠트
Math.log // 밑을 자연상수로 하는 로그함수
Math.exp // 밑을 자연상수로 하는 지수함수
Math.sqrt // 제곱근

// 절대값, 올림, 내림, 반올림, 소수점 아래 잘라내기
Math.abs // 절댓값
Math.ceil // 올림
Math.floor // 내림
Math.round // 반올림
Math.trunc // 소수점 아래 잘라내기

// 최대값, 최소값
Math.max
Math.min

// 랜덤
Math.random // 0과 1 사이의 랜덤한 값
Math.ceil(3.14)
Math.round(3.14)
Math.floor(3.14)

이 함수는 정수로만 적용이 된다.

소수점 2자리에서 적용하고 싶을 경우

Math.ceil(1.2345 * 100) / 100

이렇게 자리수를 바꿔준 후 다시 돌려야 한다.

 

 

String

// 문자열의 길이 알아내기
'hello'.length; // 5

// 여러 문자열 연결하기
'hello'.concat('fun', 'javascript'); // 'hellofunjavascript'

// 특정 문자열을 반복하는 새 문자열 생성하기
'*'.repeat(3); // '***'

// 특정 문자열이 포함되어 있는지 확인하기
'hello javascript'.includes('hello'); // true
'hello javascript'.startsWith('he'); // true
'hello javascript'.endsWith('ript'); // true
'hello javascript'.indexOf('java'); // 6

// 문자열의 특정 부분을 바꾼 새 문자열 생성하기
'hello javascript'.replace('java', 'type'); // 'hello typescript'

// 문자열의 일부를 잘라낸 새 문자열 생성하기
'hello'.slice(2, 4); // 'll'

// 좌우 공백문자를 제거한 새 문자열 생성하기
'   hello  '.trim(); // 'hello'
'   hello  '.trimLeft(); // 'hello  '
'   hello  '.trimRight(); // '   hello'

// 좌우 공백문자를 추가한 새 문자열 생성하기
'hello'.padStart(8); // '   hello'
'hello'.padEnd(8); // 'hello   '

// 문자열을 특정 문자를 기준으로 잘라 새 배열 생성하기
'hello!fun!javavscript'.split('!'); // ['hello', 'fun', 'javascript']
'hello'.split(''); // ['h', 'e', 'l', 'l', 'o']

// 모든 문자를 소문자, 혹은 대문자로 변환한 새 문자열 생성하기
'Hello JavaScript'.toLowerCase(); // 'hello javascript'
'Hello JavaScript'.toUpperCase(); // 'HELLO JAVASCRIPT'
728x90

'Web > vanilla js' 카테고리의 다른 글

[JS] 함수  (0) 2021.06.28
[JS] 데이터 타입, let/var, hoisting  (0) 2021.06.28
[JS] HTML에서 javascript 파일 옵션 + use strict  (0) 2021.06.28
[JS] javascript map, filter, find 함수  (0) 2021.04.29