Skip to content

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JavaScript 😺

μžλ°”μŠ€ν¬λ¦½νŠΈ(Javascript)

1. 퍼즐 쑰각처럼 μ½”λ“œ ν˜•νƒœλ‘œ HTML νŽ˜μ΄μ§€μ— λ‚΄μž₯λœλ‹€.
2. 컴파일 κ³Όμ • 없이 λΈŒλΌμš°μ € λ‚΄λΆ€μ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ 처리기(인터프리터)에 μ˜ν•΄ λ°”λ‘œ μ‹€ν–‰λœλ‹€.
    β€» 개발이 λ°œμ „λ¨μ— 따라 컴파일 과정이 κ°€λŠ₯ν•΄μ‘ŒμœΌλ©°, Node.js둜 μ„œλ²„ ν™˜κ²½μ„ κ΅¬μΆ•ν•œλ‹€.
    
[index.html]    			[μ›Ή λΈŒλΌμš°μ €]
<script>
    μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ		  인터프리터 -> μžλ°”μŠ€ν¬λ¦½νŠΈ μ‹€ν–‰
</script>

μ›Ή νŽ˜μ΄μ§€μ—μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ—­ν• 

μ›Ή νŽ˜μ΄μ§€λŠ” 3κ°€μ§€(HTML, CSS, JS) μ½”λ“œκ°€ κ²°ν•©λ˜μ–΄ μž‘μ„±λœλ‹€.
μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‚¬μš©μžμ˜ μž…λ ₯을 μ²˜λ¦¬ν•˜κ±°λ‚˜ μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μž‘μ„±ν•˜λŠ” λ“±
μ›Ή νŽ˜μ΄μ§€μ˜ 동적 μ œμ–΄μ— μ‚¬μš©λœλ‹€.

- μ‚¬μš©μžμ˜ μž…λ ₯ 및 μ—°μ‚°
    HTML 폼은 μž…λ ₯창만 μ œκ³΅ν•˜κ³ ,
    ν‚€, 마우슀의 μž…λ ₯κ³Ό 연산은 였직 μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œλ§Œ μ²˜λ¦¬κ°€ κ°€λŠ₯ν•˜λ‹€.

- μ›Ή νŽ˜μ΄μ§€ λ‚΄μš© 및 λͺ¨μ–‘μ˜ 동적 μ œμ–΄
    HTML νƒœκ·Έμ˜ μ†μ„±μ΄λ‚˜ μ½˜ν…μΈ , CSS 속성 값을 λ³€κ²½ν•˜μ—¬
    μ›Ή νŽ˜μ΄μ§€μ— 동적인 λ³€ν™”λ₯Ό μΌμœΌν‚€λŠ” 데에 ν™œμš©λœλ‹€.

- λΈŒλΌμš°μ € μ œμ–΄
	    λΈŒλΌμš°μ € μœˆλ„μš°μ˜ ν¬κΈ°λ‚˜ λͺ¨μ–‘ λ³€κ²½, μƒˆ μœˆλ„μš°λ‚˜ νƒ­ μ—΄κΈ°, λ‹€λ₯Έ μ›Ή μ‚¬μ΄νŠΈ 접속,
	    λΈŒλΌμš°μ €μ˜ νžˆμŠ€ν† λ¦¬ μ œμ–΄ λ“± λΈŒλΌμš°μ €μ˜ μž‘λ™μ„ μ œμ–΄ν•˜λŠ” 데 ν™œμš©λœλ‹€.

- μ›Ή μ„œλ²„μ™€μ˜ 톡신(Ajax)
	    μ›Ή νŽ˜μ΄μ§€κ°€ μ›Ή μ„œλ²„μ™€ 데이터λ₯Ό μ£Όκ³  받을 λ•Œ ν™œμš©ν•œλ‹€.

- μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μž‘μ„±(API)
	    μžλ°”μŠ€ν¬λ¦½νŠΈ μ–Έμ–΄λ‘œ ν™œμš©ν•  수 μžˆλŠ” λ§Žμ€ APIλ₯Ό μ œκ³΅ν•˜λ―€λ‘œ,
	    μ›Ή λΈŒλΌμš°μ €μ—μ„œ μ‹€ν–‰λ˜λŠ” λ‹€μ–‘ν•œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•  수 μžˆλ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μž‘μ„±ν•  수 μžˆλŠ” μœ„μΉ˜

1. HTML νƒœκ·Έμ˜ 이벀트 λ¦¬μŠ€λ„ˆ 속성에 μž‘μ„±
    HTML νƒœκ·Έμ—λŠ” λ§ˆμš°μŠ€κ°€ ν΄λ¦­λ˜κ±°λ‚˜ ν‚€λ³΄λ“œμ˜ ν‚€κ°€ μž…λ ₯λ˜λŠ” λ“±μ˜ μ΄λ²€νŠΈκ°€ λ°œμƒν•  λ•Œ
	    μ²˜λ¦¬ν•˜λŠ” μ½”λ“œλ₯Ό λ“±λ‘ν•˜λŠ” λ¦¬μŠ€λ„ˆ 속성이 μžˆλ‹€.

2. <script></script> νƒœκ·Έ 내에 μž‘μ„±
	    <head></head>, <body></body>, <body>νƒœκ·Έ λ°– λ“± μ–΄λ””λ“  λ“€μ–΄κ°ˆ 수 μžˆλ‹€.
	    μ›Ή νŽ˜μ΄μ§€ λ‚΄μ—μ„œ μ—¬λŸ¬ 번 μž‘μ„±ν•  수 μžˆλ‹€.

3. μžλ°”μŠ€ν¬λ¦½νŠΈ νŒŒμΌμ— μž‘μ„±
	    μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό ν™•μ •μžκ°€ .js인 λ³„λ„μ˜ 파일둜 μ €μž₯ν•˜κ³ ,
	    <script src".js경둜"></script>

4. URL 뢀뢄에 μž‘μ„±
	    <a> νƒœκ·Έμ˜ href 속성 등에도 μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆλ‹€.
	    "javascript:"λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μž‘μ„±ν•΄μ•Ό href 속성에 JS μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆλ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ HTML μš”μ†Œ 좜λ ₯

μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ‘œ HTML μš”μ†Œλ₯Ό μ›Ή νŽ˜μ΄μ§€μ— 직접 μ‚½μž…ν•˜μ—¬ λΈŒλΌμš°μ € μœˆλ„μš°μ—
좜λ ₯되게 ν•  수 μžˆλ‹€. μ΄λ•Œ document.wirte() ν˜Ήμ€ document.writeln()을 μ‚¬μš©ν•œλ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈ λ‹€μ΄μ–Όλ‘œκ·Έ

μ‚¬μš©μžμ—κ²Œ λ©”μ„Έμ§€λ₯Ό 좜λ ₯ν•˜κ±°λ‚˜, μž…λ ₯을 받을 수 μžˆλŠ” 3κ°€μ§€ λ‹€μ΄μ–Όλ‘œκ·Έκ°€ μžˆλ‹€.

- ν”„λ‘¬ν”„νŠΈ λ‹€μ΄μ–Όλ‘œκ·Έ
	    prompt("λ©”μ„Έμ§€", "λ””ν΄νŠΈ κ°’");

    μ‚¬μš©μžκ°€ μž…λ ₯ν•œ λ¬Έμžμ—΄ 값을 λ¦¬ν„΄ν•˜μ§€λ§Œ 아무 값도 μž…λ ₯ν•˜μ§€ μ•ŠμœΌλ©΄ ""을 리턴,
	    μ·¨μ†Œλ‚˜ κ°•μ œλ‘œ λ‹«μœΌλ©΄ null을 λ¦¬ν„΄ν•œλ‹€.
	    "λ””ν΄νŠΈ κ°’"은 μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€.

- 확인 λ‹€μ΄μ–Όλ‘œκ·Έ
	    confirm("λ©”μ„Έμ§€");

	    확인/μ·¨μ†Œ λ²„νŠΌμ„ κ°€μ§„ λ‹€μ΄μ–Όλ‘œκ·Έλ₯Ό 좜λ ₯ν•œλ‹€.
	    확인 true, μ·¨μ†Œ ν˜Ήμ€ κ°•μ œλ‘œ 닫을 μ‹œ falseλ₯Ό λ¦¬ν„΄ν•œλ‹€.

- κ²½κ³  λ‹€μ΄μ–Όλ‘œκ·Έ
	    alert("λ©”μ„Έμ§€");

데이터 νƒ€μž…κ³Ό λ³€μˆ˜

1. μžλ°”μŠ€ν¬λ¦½νŠΈ μ‹λ³„μž(이름)
	    μ‹λ³„μž(identifier)λž€ μžλ°”μŠ€ν¬λ¦½νŠΈ κ°œλ°œμžκ°€ λ³€μˆ˜, μƒμˆ˜, ν•¨μˆ˜μ— λΆ™μ΄λŠ” 이름이닀.
	    μ‹λ³„μžλ₯Ό λ§Œλ“€ λ•Œ λ‹€μŒ κ·œμΉ™μ„ μ€€μˆ˜ν•΄μ•Όν•œλ‹€.

	    - 첫 번째 문자: μ•ŒνŒŒλ²³, 언더바, $문자만 μ‚¬μš©κ°€λŠ₯
	    - 두 번째 이상 문자: μ•ŒνŒŒλ²³, 언더바, 0-9, $ μ‚¬μš©κ°€λŠ₯
	    - λŒ€μ†Œλ¬Έμž ꡬ뢄: data와 dAtaλŠ” λ‹€λ₯Έ μ‹λ³„μžμ΄λ‹€.
	    - ν‚€μ›Œλ“œ(μ˜ˆμ•½μ–΄) μ‚¬μš© λΆˆκ°€

2. λ¬Έμž₯ ꡬ뢄
	    μ„Έλ―Έμ½œλ‘ μœΌλ‘œ λ¬Έμž₯κ³Ό λ¬Έμž₯을 κ΅¬λΆ„ν•œλ‹€.
	    ν•œ 쀄에 ν•œ λ¬Έμž₯만 μžˆλŠ” 경우 μ„Έλ―Έμ½œλ‘ μ„ μƒλž΅ν•  수 μžˆλ‹€.

	    i = i + 1		(O)
	    j = j + 1;		(O)
	    k = k + 1; m = m + 1;	(O)
	    n = n + 1 p = p + 1	(X)

3. 주석
	    - ν•œ 쀄 주석 : //
	    - λ²”μœ„ 주석 : /* */

4. 데이터 νƒ€μž…
	    - 숫자 νƒ€μž…(number)
	    - 논리 νƒ€μž…(bool)
	    - λ¬Έμžμ—΄ νƒ€μž…(string)
	    - 객체 레퍼런슀 νƒ€μž…(object): Object, Array, Math, Date, ...
	    - undefined: νƒ€μž…μ΄ μ •ν•΄μ§€μ§€ μ•Šμ€ 것을 μ˜λ―Έν•œλ‹€.
	    - null: 값이 μ •ν•΄μ§€μ§€ μ•Šμ€ 것을 μ˜λ―Έν•œλ‹€.

5. λ³€μˆ˜
	    - var ν‚€μ›Œλ“œλ‘œ λ³€μˆ˜λ₯Ό μ„ μ–Έν•œλ‹€.

	    var score;
	    var year, month, day;
	    var address = "남양주";

	    - var ν‚€μ›Œλ“œ 없이 λ³€μˆ˜λ₯Ό μ„ μ–Έν•  수 μžˆλ‹€.

	    age = 20;

	    β€» λŒ€ν˜Όλž€

	    var age = 20;
	    var age = 10;
	    age = 5;

	    λͺ¨λ‘ μ„ μ–Έ λ˜λŠ” μˆ˜μ •μ΄λ‹€.

6. μ§€μ—­ λ³€μˆ˜μ™€ μ „μ—­ λ³€μˆ˜
	    λ³€μˆ˜μ˜ μ‚¬μš© λ²”μœ„(scope)에 λ”°λΌμ„œ μ „μ—­ λ³€μˆ˜(global)와 μ§€μ—­ λ³€μˆ˜(local)둜 λ‚˜λ‰œλ‹€.
	    var둜 μ„ μ–Έ μ‹œ, scopeλŠ” λ°˜λ“œμ‹œ ν•¨μˆ˜μ˜ μ˜μ—­λ§Œ νŒλ‹¨ν•œλ‹€.

	    μ „μ—­ λ³€μˆ˜: ν•¨μˆ˜ λ°–μ—μ„œ μ„ μ–Έλ˜κ±°λ‚˜ ν•¨μˆ˜ μ•ˆμ—μ„œ var ν‚€μ›Œλ“œ 없이 μ„ μ–Έ.
	    μ§€μ—­ λ³€μˆ˜: ν•¨μˆ˜ μ•ˆμ—μ„œ var ν‚€μ›Œλ“œλ‘œ μ„ μ–Έ. μ„ μ–Έλœ ν•¨μˆ˜ λ‚΄μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯.

7. μƒμˆ˜
	    let: μˆ˜μ • κ°€λŠ₯
	    const: μˆ˜μ • λΆˆκ°€λŠ₯

ν•¨μˆ˜

μ½”λ“œμ˜ μž¬μ‚¬μš©μ„ μœ„ν•œ λͺ©μ μœΌλ‘œ μ‚¬μš©λœλ‹€.
인자(νŒŒλΌλ―Έν„°, parameter, variable): λ§€κ°œλ³€μˆ˜(μ„ μ–ΈλΆ€)
인수(μ•„κ·œλ¨ΌνŠΈ, argument, value): λ§€κ°œλ³€μˆ˜μ— λ“€μ–΄κ°€λŠ” κ°’(μ‚¬μš©λΆ€, ν˜ΈμΆœλΆ€)

ν•¨μˆ˜μ˜ μ„ μ–Έ

function μ‹λ³„μž(arg1, arg2, arg3, ...) {
	    μ‹€ν–‰ν•  λ¬Έμž₯;
	    return 리턴 κ°’;
}

- function: ν•¨μˆ˜ μ„ μ–Έ ν‘œμ‹œν•œλ‹€
- μ‹λ³„μž: λ™μ‚¬λ‘œ μž‘μ„±ν•œλ‹€
- parameter: μ—¬λŸ¬ 개 μžˆμ„ λ•Œμ—λŠ” 콀마둜 λΆ„λ¦¬ν•˜κ³  μžλ£Œν˜•μ„ λ”°λ‘œ μž‘μ„±ν•˜μ§€ μ•ŠλŠ”λ‹€. μƒλž΅λ„ κ°€λŠ₯ν•˜λ‹€
- return: μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€. λ¦¬ν„΄νƒ€μž…μ€ λ”°λ‘œ μž‘μ„±ν•˜μ§€ μ•Šκ³ , return을 λ§Œλ‚˜λ©΄ ν•¨μˆ˜λŠ” μ¦‰μ‹œ μ’…λ£Œλœλ‹€

μ „μ—­ ν•¨μˆ˜

- eval()
	    λ¬Έμžμ—΄ ν˜•νƒœμ˜ μˆ˜μ‹μ„ μ „λ‹¬λ°›μ•„μ„œ μˆ˜μ‹μ„ κ³„μ‚°ν•œλ‹€.
	    eval("2+3*6-7") == 13;

- parseInt()
	    λ¬Έμžμ—΄μ„ μ •μˆ˜λ‘œ λ³€ν™˜.
	    parseInt("34") === 34;

- isNaN()
	    값이 NaN이면 true
	    NaN이 μ•„λ‹ˆλ©΄ false

- isFinite()
	    값이 NaN이 μ•„λ‹ˆλ©΄ true
	    NaN이면 false

객체

객체의 κ³ μœ ν•œ 속성을 ν”„λ‘œνΌν‹°(property)라고 λΆ€λ₯΄λ©°, μ—¬λŸ¬ ν”„λ‘œνΌν‹°μ™€ κ°’μ˜ 쌍으둜 ν‘œν˜„λœλ‹€.
객체가 ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜λŠ” λ©”μ†Œλ“œλΌκ³  λΆ€λ₯Έλ‹€.

account = {name: 'ν•œλ™μ„', number: '110-11-1232142', password: '1234'}
account.name
account.number
account.password
account["name"]
account["number"]
account["password"]

account.age = 20

account.deposit = function() {...}

account.deposit();

DOM1 DOM2 DOM3


BOM(λΈŒλΌμš°μ € 객체 λͺ¨λΈ)

μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ΄μš©ν•˜λ©΄ λΈŒλΌμš°μ €μ˜ 정보에 μ ‘κ·Όν•˜κ±°λ‚˜ λΈŒλΌμš°μ €μ˜ μ—¬λŸ¬ κΈ°λŠ₯듀을 μ œμ–΄ν•  수 μžˆλ‹€.
μ΄λ•Œ μ‚¬μš©ν•  수 μžˆλŠ” 객체 λͺ¨λΈμ„ λΈŒλΌμš°μ € 객체 λͺ¨λΈ(BOM)이라고 ν•œλ‹€.
λΈŒλΌμš°μ € 객체 λͺ¨λΈμ€ λ¬Έμ„œ 객체 λͺ¨λΈ(DOM)κ³Ό 달리 W3C의 ν‘œμ€€ 객체 λͺ¨λΈμ€ μ•„λ‹ˆλ‹€.
ν•˜μ§€λ§Œ μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ λΈŒλΌμš°μ €μ˜ κΈ°λŠ₯적인 μš”μ†Œλ“€μ„ 직접 μ œμ–΄ν•˜κ³  관리할 수 μžˆλŠ” 방법을 μ œκ³΅ν•΄μ€€λ‹€.

window 객체

μ›Ή λΈŒλΌμš°μ €μ˜ μ°½(window)을 λ‚˜νƒ€λ‚΄λŠ” 객체둜, λŒ€λΆ€λΆ„μ˜ μ›Ή λΈŒλΌμš°μ €μ—μ„œ μ§€μ›ν•œλ‹€.
μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λͺ¨λ“  객체, μ „μ—­ν•¨μˆ˜, μ „μ—­λ³€μˆ˜λ“€μ€ μžλ™μœΌλ‘œ window 객체의 ν”„λ‘œνΌν‹°κ°€ λœλ‹€.

location 객체

location κ°μ²΄λŠ” ν˜„μž¬ λΈŒλΌμš°μ €μ— ν‘œμ‹œλœ HTML λ¬Έμ„œμ˜ μ£Όμ†Œ(URL)λ₯Ό μ–»κ±°λ‚˜,
λΈŒλΌμš°μ €μ— μƒˆ λ¬Έμ„œλ₯Ό 뢈러올 λ•Œ μ‚¬μš©ν•  수 μžˆλ‹€.
location 객체의 ν”„λ‘œνΌν‹°μ™€ λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•˜λ©΄,
ν˜„μž¬ λ¬Έμ„œμ˜ URL μ£Όμ†Œλ₯Ό λ‹€μ–‘ν•˜κ²Œ ν•΄μ„ν•˜μ—¬ μ²˜λ¦¬ν•  수 있게 λœλ‹€.

- href: νŽ˜μ΄μ§€μ˜ URL 전체 정보 λ°˜ν™˜, URL을 μ§€μ •ν•˜μ—¬ νŽ˜μ΄μ§€ 이동도 κ°€λŠ₯.
- pathname: URL 쀑 경둜 λΆ€λΆ„μ˜ 정보λ₯Ό λ°˜ν™˜ν•œλ‹€.
- port: 포트번호λ₯Ό λ°˜ν™˜ν•œλ‹€.
- reload(): μƒˆλ‘œ κ³ μΉ¨
- assign(): ν˜„μž¬ URL을, μ§€μ •ν•œ URL둜 λ°”κΏ”μ„œ νŽ˜μ΄μ§€ 이동
- replace(): ν˜„μž¬ URL을, μ§€μ •ν•œ URL둜 λ°”κΏ”μ„œ νŽ˜μ΄μ§€ 이동, 이전 νŽ˜μ΄μ§€λ‘œ λŒμ•„κ°ˆ 수 μ—†κ²Œ ν•œλ‹€.

history 객체

history κ°μ²΄λŠ” λΈŒλΌμš°μ €μ˜ νžˆμŠ€ν† λ¦¬ 정보λ₯Ό λ¬Έμ„œμ™€ λ¬Έμ„œμƒνƒœ λͺ©λ‘μœΌλ‘œ μ €μž₯ν•˜λŠ” 객체이닀.

- go(n): n번째 νŽ˜μ΄μ§€λ‘œ 이동(0λΆ€ν„° μ‹œμž‘)
	    1. n이 μ–‘μˆ˜μΌ λ•Œ : μ•žμœΌλ‘œ
	    2. n이 음수일 λ•Œ : λ’€λ‘œ
	    3. n이 0일 λ•Œ : μƒˆλ‘œκ³ μΉ¨

- back(): λ’€λ‘œ ν•œ μΉΈ 이동
- forward(): μ•žμœΌλ‘œ ν•œ μΉΈ 이동

jQuery

μš”μ†Œλ“€μ„ μ„ νƒν•˜λŠ” κ°•λ ₯ν•œ 방법을 μ‚¬μš©ν•˜κ³  μ„ νƒλœ μš”μ†Œλ“€μ„
효율적으둜 μ œμ–΄ν•  수 μžˆλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ λΌμ΄λΈŒλŸ¬λ¦¬μ΄λ‹€.

jQuery κΈ°λ³Έ 문법

$("μ„ νƒμž")

κ°’ κ°€μ Έμ˜€κΈ°

$("μ„ νƒμž").val(): μž…λ ₯ν•  값을 κ°€μ Έμ˜¬ λ•Œ
$("μ„ νƒμž").text(): 미리 μž‘μ„±λœ 값을 κ°€μ Έμ˜¬ λ•Œ

반볡문

$.each(iterator, function(index, item){});
$.each(iterator, (index, item) => {});
iterator.each(function(index, item{}));
iterator.each((index, item) => {});

jQueryλ₯Ό μ‚¬μš©ν•˜λ©΄, 순수 Javascript에 λΉ„ν•΄ 속도가 λŠλ €μ§„λ‹€. ν•˜μ§€λ§Œ κ°„κ²°ν•œ λ¬Έλ²•μœΌλ‘œ 인해 개발 속도 증가와 μ²˜λ¦¬λΉ„μš© κ°μ†Œμ— λŒ€ν•œ μž₯점이 있으며, 60% μ΄μƒμ˜ μ›Ή μ‚¬μ΄νŠΈμ—μ„œ μ‚¬μš©ν•˜κ³  있기 λ•Œλ¬Έμ— μ μ ˆν•œ 상황에 맞좰 μ‚¬μš©ν•  쀄 μ•Œμ•„μ•Ό ν•œλ‹€.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages