자바스크립트 문법들

유진·2021년 1월 18일
0

Array

- sort([compareFunction])

  • parameter
    • compareFunction: 정렬 순서를 정의하는 함수. 생략하면 배열은 각 요소를 문자열로 변환한다고 가정하고, 각 문자의 유니코드 코드 포인트 값에 따라 정렬한다.
  • return: 정렬된 배열. 원 배열이 정렬된다. 복사본이 만들어지는 것 아님!

compareFunction은 두 개의 인자를 가진다.

  • compareFunction(a, b)의 반환값이 0보다 작은 경우: a를 b보다 낮은 인덱스로 정렬한다(= a가 먼저 온다).
  • compareFunction(a, b)의 반환값이 0인 경우: a와 b 서로에 대해 변경하지 않는다.
  • compareFunction(a, b)의 반환값이 0보다 큰 경우: b를 a보다 낮은 인덱스로 정렬한다(=b가 먼저 온다).

String

- str.startsWith()

str.startsWith(searchString[, position]);
  • parameters
    • searchString: 탐색할 문자열
    • position: 탐색을 시작할 위치. 기본값은 0.
  • return: 탐색할 문자열이 있으면 true, 없으면 false를 반환
var str = 'To be, or not to be, that is the question.';

console.log(str.startsWith('To be'));         // true
console.log(str.startsWith('not to be'));     // false
console.log(str.startsWith('not to be', 10)); // true

- str.trim()

str.trim();

문자열의 양 끝의 공백을 제거한 새로운 문자열을 반환한다.

Object

- Object.keys(object)

인수로 주어진 객체(object)의 키들을 배열 형태로 리턴한다.

const object1 = {
  a: 'hi',
  b: 123,
  c: true
};

console.log(Object.keys(object1));

// Array ['a', 'b', 'c']

❗ 객체가 아닌 걸 넣는 경우

ES5에서는 객체가 아닌 것을 인수로 넣으면 TypeError를 리턴한다.

그러나 ES2015 이상 부터는 객체가 아닌 인수도 객체처럼 취급한다.

// ES5
Object.keys('foo') // TypeError: 'foo' is not an object

// ES2015+
Object.keys('foo'); // ['0', '1', '2']

etc

- Boolean 함수

첫번째 매개변수로 전달한 값에 따라 true, false가 결정된다.

  • 매개변수가 소위 말하는 falsy 값(0, -0, null, false, NaN, undefined, "")이면 초기값이 false로 지정된다.
  • 그 외의 매개변수는 모두 true이다.
var x = Boolean(undefined); // 초기값: false
var y = Boolean("false");   // 초기값: true

- parseInt(string[, radix])

  • parameter
    • string: 분석할 값. 만약 string이 문자열이 아니면 문자열로 변환한다.
    • radix: 2와 36 사이의 진수(수의 진법 체계에 기준이 되는 값)
  • return: string으로부터 분석한 정수.

- FormData

HTML form 태그의 데이터를 동적으로 제어할 수 있는 기능.

  • .append(key, value): 키-값 형식으로 데이터 저장. 같은 키에 append를 여러번 하면 값을 리스트로 저장한다.
  • .has(key): 해당 키가 있으면 true, 없으면 false 리턴
  • .get(key): 해당 키의 값을 리턴. 값이 여러개인 경우 첫번째 값만 리턴
  • .getAll(key): 해당 키의 모든 값을 리스트 형태로 리턴
  • .delete(key): 해당 키와 값을 모두 삭제
const formData = new FormData();

formData.append("name", "youjin");
formData.append("lang", ["kor", "eng"]);
formData.append("programming", "python");
formData.append("programming", "javascript");
formData.has("name"); //true
formData.has("time"); //false
formData.get("lang"); //['kor', 'eng']
formData.get("programming"); // python
formData.getAll("programming"); //['python', 'javascript']
formData.delete("lang");
formData.get("lang"); //null
formData.set("programming", "c++");
formData.getAll("programming"); // ['c++']

axios로 폼 데이터를 서버에 보낼 때

(aync () => {
  try {
    const formData = new formData();
    formData.append('name', 'youjin');
    formData.append('nickname', 'nittre');
    const result = axios.post('https://www.blah.com/', formData);
    console.log(result);
  } catch(error) {
    console.log(error);
  }
})
profile
제가 또 기가막힌 한 줌의 트러플 소금 같은 존재그등요

0개의 댓글