로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.중간의 다른 편집과 충돌하여 이 편집을 되돌릴 수 없습니다. 스팸 방지 검사입니다. 이것을 입력하지 마세요![[파일:JavaScript-logo.png|섬네일]] '''JavaScript'''는 오늘날 [[월드 와이드 웹]] 환경에서 광범위하게 쓰이는 [[프로그래밍 언어]]이다. [[Java]]하고는 문법이 ''조금'' 비슷해 보인다는 점을 빼면 '''전혀 다른 언어이다.''' {{ㅊ|[[인도]]와 [[인도네시아]]급}} <del>car와 carpet처럼 관련이 없다.</del> [[#역사]] 문서로. == 역사 == [[웹 브라우저]]인 [[넷스케이프 네비게이터]] 2.0의 [[스크립트 언어]]로 쓰기 위해 [[1995년]]부터 개발되었다. 당시 [[넷스케이프]] 사에서 일했고, 훗날 [[모질라 재단]]의 [[CTO]]로 재직하는 [http://en.wikipedia.org/wiki/Brendan_Eich Brendan Eich]가 10일 만에(......) 만들었다고 한다. JavaScript라는 이름이 된 것은 순전히 마케팅적인 이유로, 처음에는 Mocha, 그 다음에는 LiveScript라는 이름을 쓰다가 <s>지금은 회사 째로 [[오라클 (기업)|오라클]]에 먹힌</s> [[썬 마이크로시스템즈]]와 상표권 라이센스를 맺게 되면서<ref>[https://web.archive.org/web/20070916144913/http://wp.netscape.com/newsref/pr/newsrelease67.html Netscape and Sun Announce JavaScript]</ref> JavaScript라는 이름으로 발표하고 덤으로 문법까지 [[Java]]와 비슷하게 고쳐져 버렸다. 넷스케이프 네비게이터와 함께 JavaScript는 큰 성공을 거두었고, 당시 넷스케이프와 경쟁하던 [[인터넷 익스플로러]]도 JScript라는 이름으로 호환 엔진을 만들게 되었다. 이렇게 한동안 비슷한 듯 다른 두 개의 언어가 공존하는 상태가 지속되다가, 이 애매한 상태를 해소하기 위해 공동으로 [[Ecma 인터내셔널]]이라는 유럽의 표준화 단체에서 이 언어에 대한 표준화를 진행하게 되었다. 이때, 어쨌거나 '''Java'''Script라는 이름을 쓰는 건 상표권 이슈가 있었으므로, 표준화 단체의 앞글자를 딴 [http://www.ecmascript.org ECMAScript]라는 이름 공식적인 표준의 이름으로 쓰게 되었다. 따라서 형식적으로는 JavaScript는 [[ECMAScript]] 표준을 구현한 한 구현체의 이름이 된다. ECMAScript 표준을 따르는 다른 프로그래밍 언어로는 [[Adobe Flash]]에서 쓰이는 [[ActionScript]]가 있다. 현재 JavaScript라는 이름은 Oracle의 등록상표이다. Sun의 상표권을 그대로 인수했기 때문이다. 현재 JavaScript라는 이름을 구글을 비롯한 여러 회사에서 그냥 사용하고 있기는 한데, 이것은 일종의 [[공정 이용]]으로, 오라클의 그 JavaScript를 구현한 무언가를 지칭하기 위해서는 오라클의 허락 없이도 JavaScript라는 단어를 사용할 수 있다. [[위키백과:en:Nominative use]] 문서로. == 특징 == 언어적으로, JavaScript는 동적 타입을 쓰며 프로토타입 기반 객체 지향 프로그래밍을 지원하는 절차형 언어이다. 절차형 언어임에도 불구하고 [[함수형 프로그래밍]] 언어들처럼 익명 함수와 클로져를 쓸 수 있는데, 이는 JavaScript가 처음 설계될 적에 [[Scheme]]이라는 [[LISP]] 사투리로부터 영향을 받았기 때문이다.<ref>[http://www.2ality.com/2011/03/javascript-how-it-all-began.html JavaScript: how it all began ]</ref> JavaScript에 영향을 준 또 다른 언어로는 [[Self]]가 있는데, 이것은 [[Smalltalk]]를 기반으로 클래스 대신 프로토타입 기반의 객체지향 시스템을 적용한 언어이다. 이는 JavaScript의 <code>.prototype</code> 프로퍼티를 사용하는 특이한 객체 모델의 바탕이 되었다. 원래 [[인터프리터]]를 쓸 것을 염두에 두고 디자인되었고 따라서 실행 성능도 보잘것없었다. 하지만 [[2000년]]대 후반부터 [[HTML5]]와 웹 애플리케이션이 크게 대두되기 시작하면서 [[구글 크롬]]의 [https://developers.google.com/v8/ V8], [[파이어폭스]]의 [https://developer.mozilla.org/ko/docs/SpiderMonkey SpiderMonkey], [[사파리]]의 [http://trac.webkit.org/wiki/JavaScriptCore JavaScriptCore] 등 여러 우수한 JavaScript 엔진들의 성능 경쟁이 일어났고, 그 덕에 지금은 인터프리트되는 언어 중에서는 상당히 성능이 좋은 편에 속한다. 태생이 웹 브라우저의 [[스크립트 언어]]였기에, 언어 자체의 표준 라이브러리보다는 [[웹 브라우저]]의 [[API]]에 의존하는 경향이 매우 강하다. 따라서 언어 자체의 표준안인 ECMAScript 표준 이상으로 [[W3C]]의 [http://www.w3.org/DOM/ 문서 객체 모델] 표준, [[HTML5]]의 브라우저 API 표준 등에 강하게 영향을 받는다. V8 엔진을 활용한 서버측 JavaScript 구현인 Node.js가 히트하기 전에는 변변한 파일 입출력 API조차 제대로 합의된 게 없었을 정도. == 표준 == {{ECMAScript}} {{본문|ECMAScript}} JavaScript의 표준은 ECMA에서 관리하고 있으며 [[ECMAScript]]라고 부른다. 매해 새 표준이 확정되는 만큼, 활발히 발전하고 있는 언어이다. == 기타 == [http://asmjs.org asm.js]라고 하는 특이한 표준이 있는데, JavaScript를 [[어셈블리어]]처럼 [[컴파일]]할 수 있도록 JavaScript 문법을 '''매우''' 제약한 스펙이다. {{각주}} {{프로그래밍}} [[분류:JavaScript| ]] 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다. 취소 편집 도움말 (새 창에서 열림) | () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |} {{lang|}} · {{llang||}} · {{인용문|}} · {{인용문2|}} · {{유튜브|}} · {{다음팟|}} · {{니코|}} · {{토막글}} {{삭제|}} · {{특정판삭제|}}(이유를 적지 않을 경우 기각될 가능성이 높습니다. 반드시 이유를 적어주세요.) {{#expr:}} · {{#if:}} · {{#ifeq:}} · {{#iferror:}} · {{#ifexist:}} · {{#switch:}} · {{#time:}} · {{#timel:}} · {{#titleparts:}} __NOTOC__ · __FORCETOC__ · __TOC__ · {{PAGENAME}} · {{SITENAME}} · {{localurl:}} · {{fullurl:}} · {{ns:}} –(대시) ‘’(작은따옴표) “”(큰따옴표) ·(가운뎃점) …(말줄임표) ‽(물음느낌표) 〈〉(홑화살괄호) 《》(겹화살괄호) ± − × ÷ ≈ ≠ ∓ ≤ ≥ ∞ ¬ ¹ ² ³ ⁿ ¼ ½ ¾ § € £ ₩ ¥ ¢ † ‡ • ← → ↔ ‰ °C µ(마이크로) Å °(도) ′(분) ″(초) Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ(뮤) Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω · Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ · Ϊ ϊ Ϋ ϋ · ΐ ΰ Æ æ Đ(D with stroke) đ Ð(eth) ð ı Ł ł Ø ø Œ œ ß Þ þ · Á á Ć ć É é Í í Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź · À à È è Ì ì Ǹ ǹ Ò ò Ù ù · İ Ż ż ·  â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û · Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ · ǘ ǜ ǚ ǖ · caron/háček: Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž · breve: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț 이 문서에서 사용한 틀: 틀:ECMAScript (편집) 틀:Skin (원본 보기) (준보호됨)틀:ㅊ (원본 보기) (준보호됨)틀:각주 (원본 보기) (준보호됨)틀:둘러보기 상자 (원본 보기) (보호됨)틀:둘러보기 상자/중첩 (원본 보기) (준보호됨)틀:둘러보기 상자/핵심 (원본 보기) (보호됨)틀:본문 (원본 보기) (준보호됨)틀:취소선 (원본 보기) (준보호됨)틀:틀바 (원본 보기) (준보호됨)틀:프로그래밍 (편집)