---
# System prepended metadata

title: URLSearchParams()
tags: [tech sharing]

---

# URLSearchParams()


url에 전달된 주소를 url.search를 통해 params라는 변수로 검색한다.
예시는 다음과 같다.
```javascript=
const url = new URL('https://example.com?foo=1&bar=2');
const params = new URLSearchParams(url.search);

// 문자열 리터럴을 전달합니다.
const params2 = new URLSearchParams("foo=1&bar=2");
const params2a = new URLSearchParams("?foo=1&bar=2");

// 일련의 쌍으로 전달합니다.
const params3 = new URLSearchParams([["foo", "1"], ["bar", "2"]]);

// 레코드로 전달합니다.
const params4 = new URLSearchParams({"foo": "1", "bar": "2"});
```

현재 프로젝트에서 소셜로그인시 params로 전달 받는 code를 다음과 같이 처리해 주었다.
```javascript=
    const query = new URLSearchParams(location.search);
    getAccessToken(query.get('code'));
```
location.search는 url의 params 문자열 리터럴로 반환한다.
여기에 URLSearchParams에 다양한 메소드를 적용하여 원하는 파라미터를 가져올 수 있다.
예시는 다음과 같다.
```javascript=
url3.searchParams.get('hello'); // zerocho
url3.searchParams.getAll('hi'); // ['world', 'js']
url3.searchParams.append('bye', 'java');
url3.search; // ?hello=zerocho&hi=world&hi=js&bye=java
url3.searchParams.append('bye', 'ruby');
url3.search; // ?hello=zerocho&hi=world&hi=js&bye=java&bye=ruby
url3.searchParams.set('bye', 'python');
url3.search; // ?hello=zerocho&hi=world&hi=js&bye=python
url3.searchParams.delete('bye');
url3.search; // ?hello=zerocho&hi=world&hi=js
```
###### tags: `tech sharing`

