JavaScript 편집하기

귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
14번째 줄: 14번째 줄:
엄격 모드(use strict)가 추가되었고, JSON 지원과, 배열의 많은 메소드들, String.trim()이 추가되었다
엄격 모드(use strict)가 추가되었고, JSON 지원과, 배열의 많은 메소드들, String.trim()이 추가되었다
=== ES2015 ===
=== ES2015 ===
let, const가 추가되었고, default parameter, for..of문, 자바스크립트의 Lambda인 Arrow Function(화살표 함수), Map, Set, Class, Promise, Symbol, 기본 매개변수, Rest Parameter<ref>예를 들면,<syntaxhighlight lang="JavaScript" inline>function sum(...theArgs) {let total = 0;for (const arg of theArgs) {total += arg;};return total;}</syntaxhighlight> [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters 출처 Rest parameters - JavaScript | MDN]</ref>, String.includes(), String.startsWith(), String.endsWith(), Array.from(), Array.keys(), Array.find(), Array.findIndex() 등이 추가되었다
let, const가 추가되었고, default parameter, for..of문, 자바스크립트의 Lambda인 Arrow Function(화살표 함수), Map, Set, Class, Promise, Symbol, 기본 매개변수, Rest Parameter<ref>예를 들면,<syntaxhighlight lang="javascript" inline>function sum(...theArgs) {let total = 0;for (const arg of theArgs) {total += arg;};return total;}</syntaxhighlight> [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters 출처 Rest parameters - JavaScript | MDN]</ref>, String.includes(), String.startsWith(), String.endsWith(), Array.from(), Array.keys(), Array.find(), Array.findIndex() 등이 추가되었다


== 장단점 ==
== 장단점 ==
21번째 줄: 21번째 줄:
* 자바스크립트는 1995년 넷스케이프의 스크립트 언어로 Brendan Eich에 의해 개발되었다. 출시 되었을 때, 짧은 코드에만 사용될것이라고 예상했고, 따라서 빠르게 사용되도록 설계되었다. 즉, 설계가 부실한 언어인데, 문제는, 동적 웹사이트를 만드려면 자바스크립트를 무조건 사용해야 한다는 거다(!!!)
* 자바스크립트는 1995년 넷스케이프의 스크립트 언어로 Brendan Eich에 의해 개발되었다. 출시 되었을 때, 짧은 코드에만 사용될것이라고 예상했고, 따라서 빠르게 사용되도록 설계되었다. 즉, 설계가 부실한 언어인데, 문제는, 동적 웹사이트를 만드려면 자바스크립트를 무조건 사용해야 한다는 거다(!!!)
* 자바스크립트 너무 관대한 언어다. 예를 들면, 브라우저의 콘솔을 기준으로 <syntaxhighlight lang="javascript" inline>"안녕"+true</syntaxhighlight>, <syntaxhighlight lang="javascript" inline>true+1</syntaxhighlight>, <syntaxhighlight lang="javascript" inline>true+false</syntaxhighlight>, <syntaxhighlight lang="javascript" inline>[1,2,3]+true</syntaxhighlight>등은 모두 실행된다. 결과값은 순서대로 <syntaxhighlight lang="javascript" inline>"안녕true", 2, 1, "1,2,3true"</syntaxhighlight>를 반환한다. 이래서 자바스크립트를 이상하다고 하는거다.
* 자바스크립트 너무 관대한 언어다. 예를 들면, 브라우저의 콘솔을 기준으로 <syntaxhighlight lang="javascript" inline>"안녕"+true</syntaxhighlight>, <syntaxhighlight lang="javascript" inline>true+1</syntaxhighlight>, <syntaxhighlight lang="javascript" inline>true+false</syntaxhighlight>, <syntaxhighlight lang="javascript" inline>[1,2,3]+true</syntaxhighlight>등은 모두 실행된다. 결과값은 순서대로 <syntaxhighlight lang="javascript" inline>"안녕true", 2, 1, "1,2,3true"</syntaxhighlight>를 반환한다. 이래서 자바스크립트를 이상하다고 하는거다.
* 타입이 없는 것도 문제다. 타입을 생략할수 있는게 아니라 걍 타입을 지정할수조차 없다. 예를 들면 정수를 받아 더하는 함수(<syntaxhighlight lang="JavaScript" inline>function addInt(a,b) { return a+b }</syntaxhighlight>)를 선언했다고 생각해 보자. Python에서 같은 기능을 하는 함수를 선언할때, <syntaxhighlight lang="python" inline>def addInt(a, b):return a+b</syntaxhighlight>라고도 선언이 가능하기는 하지만, 좀더 확실히 하려면, <syntaxhighlight lang="python" inline>def addInt(a:int, b:int):return a+b</syntaxhighlight>처럼 파라미터에 타입을 지정하는게 가능하다. 하지만 자바스크립트에선 아예 파라미터의 타입을 지정하는 것 자체가 불가능하다. 그럼 또 입력값을 검증해야 하고, 코드는 계속 길어질것이다
* 타입이 없는 것도 문제다. 타입을 생략할수 있는게 아니라 걍 타입을 지정할수조차 없다. 예를 들면 정수를 받아 더하는 함수(<syntaxhighlight lang="javascript" inline>function addInt(a,b) { return a+b }</syntaxhighlight>)를 선언했다고 생각해 보자. Python에서 같은 기능을 하는 함수를 선언할때, <syntaxhighlight lang="python" inline>def addInt(a, b):return a+b</syntaxhighlight>라고도 선언이 가능하기는 하지만, 좀더 확실히 하려면, <syntaxhighlight lang="python" inline>def addInt(a:int, b:int):return a+b</syntaxhighlight>처럼 파라미터에 타입을 지정하는게 가능하다. 하지만 자바스크립트에선 아예 파라미터의 타입을 지정하는 것 자체가 불가능하다. 그럼 또 입력값을 검증해야 하고, 코드는 계속 길어질것이다
* 자바스크립트의 나쁜 부분은 매우 많지만 '''지금 와서 자바스크립트의 문제점을 그냥 제거할수는 없다'''는 점도 문제다. 전세계의 회사들이 자바스크립트를 이용하고 있고, 전세계의 수십억개의 웹사이트에서는 자바스크립트를 이용하고 있고, 자바스크립트에서 무언갈 삭제한다면, 전세계의 수많은 웹사이트들은 '''모두 고장'''나게 될것이다<ref>그래서 지금 자바스크립트에 무언가를 추가하는 '''업데이트만''' 진행되고 있는 것이다.</ref>.
* 자바스크립트의 나쁜 부분은 매우 많지만 '''지금 와서 자바스크립트의 문제점을 그냥 제거할수는 없다'''는 점도 문제다. 전세계의 회사들이 자바스크립트를 이용하고 있고, 전세계의 수십억개의 웹사이트에서는 자바스크립트를 이용하고 있고, 자바스크립트에서 무언갈 삭제한다면, 전세계의 수많은 웹사이트들은 '''모두 고장'''나게 될것이다<ref>그래서 지금 자바스크립트에 무언가를 추가하는 '''업데이트만''' 진행되고 있는 것이다.</ref>.


가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)